У меня есть около 500 страниц PNG, представляющих схему для мэйнфрейма DIGITAL DECsystem-20 KL10PV начала 1980-х годов (общедоступный). Процесс сканирования был ошибочным в том, что в PNG случайно вкраплены белые линии, которые представляют систематическую «соль» на чертеже. Это мешает процессу, который я использую для восстановления схемы — как для распознавания текста, так и для восстановления списка соединений компонентов и соединений.
Страница полной схемы с красными отметками вокруг области примера, показывающая проблему, о которой я говорю, Вот.
Какой волшебный механизм OpenCV я могу использовать, чтобы обнаружить эти белые полосы и «исцелить» их, скопировав среднее значение ряда выше и ряда ниже, или подобного? Я ожидаю попробовать несколько методов «исцеления», чтобы найти лучший, когда найду механизм для систематического выявления этих недостатков.
Вы имеете в виду, как это?
Этот конкретный метод использует размытие и морфологию для обработки изображения. Я позаимствовал код у Вот
int morph_elem = 1;
int morph_size = 1;
int morph_operator = 0;
Mat origImage = mat;
medianBlur(origImage, origImage,1);
cvtColor(origImage, origImage, COLOR_RGB2GRAY);
threshold(origImage, origImage, 0, 255, THRESH_OTSU);
Mat element = getStructuringElement(morph_elem, Size(2 * morph_size + 1, 2 * morph_size + 1), cv::Point(morph_size, morph_size));
morphologyEx(origImage, origImage, MORPH_OPEN, element);
//thin(origImage, true, true, true);
imshow("@", origImage);
Боюсь, у меня нет особого энтузиазма, чтобы написать много разных способов, это не совсем то, для чего нужно переполнение стека. Этот предложенный способ может привести вас на правильный путь.
Других решений пока нет …