Mat colorMat = new Mat();
Mat outMat= new Mat();
Mat resultMat = new Mat();
Mat src = Cv2.ImRead("I:\\mask.jpg");
//转成灰度图
Cv2.CvtColor(src, colorMat, ColorConversionCodes.RGB2GRAY);
//对灰度图像进行阈值操作得到二值图像
Cv2.Threshold(colorMat, outMat, 0, 255, ThresholdTypes.Binary);
//得到图像中物体的轮廓
Cv2.FindContours(outMat, out OpenCvSharp.Point[][] contours, out HierarchyIndex[] hierarchy, RetrievalModes.CComp, ContourApproximationModes.ApproxNone);
for (int idx = 0; idx < contours.Length; idx++)
{
///绘制轮廓
Cv2.DrawContours(outMat, contours, idx, new Scalar(255), 1, LineTypes.Link4, hierarchy);
}
Cv2.ImShow("result", outMat);
原图 结果图
本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明显了,没有达到预期效果。
文章来源地址https://www.toymoban.com/news/detail-533592.html文章来源:https://www.toymoban.com/news/detail-533592.html
到了这里,关于c# opencv 找到图像的轮廓,并绘制轮廓的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!