Это исходное изображение. Как можно видеть, в прямоугольнике много шумовых контуров.
Чтобы убрать шум, я попробовал следующее
Код: Выделить всё
//This image is the original
Mat imgRaw = new Mat(new OpenCvSharp.Size(opencv_image_x, opencv_image_y), MatType.CV_8UC3, Scalar.White);
Mat imgt1 = new Mat(new OpenCvSharp.Size(opencv_image_x, opencv_image_y), MatType.CV_8UC1, Scalar.White);
Mat imgt2 = new Mat(new OpenCvSharp.Size(opencv_image_x, opencv_image_y), MatType.CV_8UC1, Scalar.White);
Mat kernel2 = new Mat();
kernel = Cv2.GetStructuringElement(MorphShapes.Rect, new Size(5, 5));
Cv2.MorphologyEx(imgRaw3, imgt1, MorphTypes.Erode, kernel);
Cv2.CvtColor(imgt1, image_grayC, ColorConversionCodes.BGR2GRAY);
Cv2.ImWrite("Erode.jpg", imgRaw3);
Cv2.MorphologyEx(imgRaw3, imgt2, MorphTypes.Dilate, kernel);
Cv2.ImWrite("dilate.jpg", imgRaw3);
Как соединить все вертикальные линии, чтобы залить прямоугольник вот так?
полный пример
Я пробовал расширить изображение, но не работает должным образом, любой другой метод или способ добиться этого
Подробнее здесь: https://stackoverflow.com/questions/770 ... -with-open
Мобильная версия