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);
原图 结果图
本意是想去除白色图像周边的几个白色小点,得到轮廓图后,其他都设置为黑色,结果是白点更明显了,没有达到预期效果。