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);

原图                                                                                结果图                                                         

c# opencv 找到图像的轮廓,并绘制轮廓-LMLPHP   c# opencv 找到图像的轮廓,并绘制轮廓-LMLPHP

    本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明显了,没有达到预期效果。

 

 

07-08 13:46