Как удалить шум на изображении и заполнить пустые точки фигуры открытым резюме?C#

Место общения программистов C#
Anonymous
Как удалить шум на изображении и заполнить пустые точки фигуры открытым резюме?

Сообщение Anonymous »

Я хочу удалить шум изображения, а также залить всю фигуру черным цветом (показать в виде прямоугольника).
Это исходное изображение. Как можно видеть, в прямоугольнике много шумовых контуров.
Чтобы убрать шум, я попробовал следующее

Код: Выделить всё

               //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

Вернуться в «C#»