C#图像处理实例1:opencvsharp获取轮廓凸包

在OpenCvSharp中,你可以使用Cv2.ApproxPolyDP函数来获取轮廓的凸包。这个函数使用Douglas-Peucker算法来近似轮廓。

以下是一个简单的例子,展示如何使用OpenCvSharp获取轮廓的凸包:

csharp 复制代码
            Mat src = Cv2.ImRead(@"保存图像\2.jpg", ImreadModes.Color);
            Mat dst = src.Clone();
            //Cv2.CvtColor(image, grayImage, ColorConversionCodes.BGR2GRAY);
            // 使用Canny边缘检测算法检测边缘

            //Cv2.FindContours(edges, out contours, out hierarchy, RetrievalModes.List, ContourApproximationModes.ApproxSimple);
            //Mat img = Cv2.ImRead("dft.png", ImreadModes.Grayscale);
            Mat edages = new Mat();
            Cv2.Canny(src, edages, 60, 170, 3, true);
            OpenCvSharp.Point[][] contours = null;
            HierarchyIndex[] hierarchy = null;
            Cv2.FindContours(edages, out contours, out hierarchy, RetrievalModes.List, ContourApproximationModes.ApproxNone);
            // 遍历所有轮廓
            for (int i = 0; i < contours.Length; i++)
            {
                // 计算轮廓的凸包
                Point[] convexHull = Cv2.ApproxPolyDP(contours[i], Cv2.ArcLength(contours[i], true) * 0.05, true);

                // 绘制凸包
                Cv2.DrawContours(src, new[] { convexHull }, -1, Scalar.Red, 2);
            }
            Cv2.ImShow("src", src);
            Cv2.WaitKey(0);
}
相关推荐
游乐码8 小时前
c#变长关键字和参数默认值
学习·c#
全栈小58 小时前
【C#】合理使用DeepSeek相关AI应用为我们提供强有力的开发工具,在.net core 6.0框架下使用JsonNode动态解析json字符串,如何正确使用单问号和双问号做好空值处理
人工智能·c#·json·.netcore·deepseek
wearegogog1239 小时前
基于C#的TCP/IP通信客户端与服务器
服务器·tcp/ip·c#
Ai1731639157911 小时前
2026年了,你认为AI会取代人类吗?欢迎留言讨论
大数据·图像处理·人工智能·深度学习·计算机视觉·自动驾驶·语音识别
A_nanda14 小时前
C#调用Quartz.NET的完整实现。
c#·.net·quartz
Cccp.12315 小时前
【OpenCV】(十八)答题卡识别判卷与文档ocr扫描识别
人工智能·opencv·ocr
2501_9307077815 小时前
使用C#代码在 PowerPoint 演示文稿中插入表格
开发语言·c#·powerpoint
少控科技15 小时前
C#基础训练营 - 01 - 数据类型
开发语言·c#
Cccp.12315 小时前
【OpenCV】(十七)目标追踪
人工智能·opencv·计算机视觉
Cccp.12316 小时前
【OpenCV】(十五)图像的分割与修复
人工智能·opencv·计算机视觉