C# findContours
时间: 2024-02-28 14:51:28 浏览: 168
在C#中,findContours是一个用于图像处理的函数,它可以用来查找图像中的轮廓。轮廓是图像中连续的边界线,可以用于识别和分析图像中的对象。
在OpenCV库中,findContours函数可以通过传入二值化图像来查找轮廓。它返回一个包含所有轮廓的列表,每个轮廓都是一个点的集合。
以下是使用C#中的OpenCvSharp库进行findContours的示例代码:
```csharp
using OpenCvSharp;
class Program
{
static void Main(string[] args)
{
// 读取图像
Mat image = Cv2.ImRead("image.jpg", ImreadModes.GrayScale);
// 二值化图像
Mat binaryImage = new Mat();
Cv2.Threshold(image, binaryImage, 128, 255, ThresholdTypes.Binary);
// 查找轮廓
Point[][] contours;
HierarchyIndex[] hierarchy;
Cv2.FindContours(binaryImage, out contours, out hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);
// 绘制轮廓
Mat result = new Mat();
Cv2.CvtColor(image, result, ColorConversionCodes.GRAY2BGR);
Cv2.DrawContours(result, contours, -1, Scalar.Red, 2);
// 显示结果
Cv2.ImShow("Contours", result);
Cv2.WaitKey(0);
}
}
```
在上述示例代码中,首先读取了一张图像,并将其转换为灰度图像。然后使用阈值化将图像转换为二值图像。接下来,使用findContours函数查找轮廓,并将结果绘制在原始图像上。最后,显示结果图像。
阅读全文