利用C#写opencv对blob区域进行上颜色
时间: 2023-07-04 16:26:05 浏览: 99
您好!感谢您的提问。下面是利用C#和OpenCV对Blob区域进行上颜色的示例代码:
```csharp
using System;
using System.Drawing;
using OpenCvSharp;
using OpenCvSharp.Extensions;
class Program
{
static void Main(string[] args)
{
// 读取图像
var src = Cv2.ImRead("input.png");
// 转为灰度图像
var gray = new Mat();
Cv2.CvtColor(src, gray, ColorConversionCodes.BGR2GRAY);
// 二值化
var binary = new Mat();
Cv2.Threshold(gray, binary, 0, 255, ThresholdTypes.Binary | ThresholdTypes.Otsu);
// 找轮廓
var contours = Cv2.FindContoursAsArray(binary, RetrievalModes.List, ContourApproximationModes.ApproxSimple);
// 上颜色
var random = new Random();
for (int i = 0; i < contours.Length; i++)
{
var color = new Scalar(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));
Cv2.DrawContours(src, new[] { contours[i] }, -1, color, -1);
}
// 显示结果
Cv2.ImShow("Result", src);
Cv2.WaitKey();
}
}
```
这段代码先读取了一张图像,然后将其转为灰度图像并进行二值化处理。接着使用`FindContoursAsArray`函数找到图像中的轮廓,并使用`DrawContours`函数对每个轮廓上颜色。最后将结果显示出来。
需要注意的是,这段代码使用了OpenCVSharp库,因此在运行之前需要先安装该库。另外,由于每个Blob区域的颜色是随机生成的,因此每次运行结果可能会不一样。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)