2

我有大约 500 页 PNG,代表 1980 年代早期 DIGITAL DECsystem-20 KL10PV 大型机的示意图(可公开获得)。扫描过程存在缺陷,因为随机散布在 PNG 中的是代表绘图中系统“盐”的白线。这干扰了我用来恢复原理图的过程——OCR 以及组件和互连网表的恢复。

放大的原理图页面的一部分

一个完整的示意图页面,在示例区域周围带有红色标记,显示了我正在谈论的问题

我可以使用什么神奇的 OpenCV 机制来检测这些白色条带并通过复制上面一行和下面一行的平均值或类似方法来“治愈​​”它们?一旦我找到一种系统地识别这些缺陷的机制,我希望尝试几种“修复”技术来找到最好的技术。

4

1 回答 1

1

你的意思是这样吗?

在此处输入图像描述

这种特殊的方法使用模糊和形态来处理图像。我从这里借了代码

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

恐怕我真的没有热情写出许多不同的方式,这不是 Stack Overflow 的真正目的。不过,这种建议的方式可能会让您走上正确的道路。

于 2017-10-27T07:28:48.023 回答