【问题标题】:sharpen image to detect edges/lines in a stamped "X" object on paper锐化图像以检测纸上标记的“X”对象中的边缘/线条
【发布时间】:2016-02-12 01:09:38
【问题描述】:

我正在使用 python 和 opencv。我的目标是检测用树莓派相机拍摄的图像中的“X”形碎片。该项目是我们已经预先打印了井字棋盘,并且每次将新棋子放在棋盘上时都必须对棋盘进行成像(带有墨水印章)。然后输出说明在井字棋棋盘的哪个部分有什么类型的棋子(如果有的话)。

在这里,我在图像中检测到的线条是绿色的:

如您所见,“X”形碎片似乎不容易被发现。有些邮票上只有一行被“看到”。

这是过滤器后边缘检测的样子:

我检测“X”形块的方法是在每个部分中检查任何具有非水平/垂直斜率的线。我的问题是“X”形印章不是完美的线条;因此,我的代码几乎不会出现在行上。

我尝试过应用非锐化过滤器,使用直方图均衡化,并且仅在边缘检测中使用灰度。这些都没有在任何“X”形块中检测到超过 1 条线。

大概是我在做什么:

#sharpen image using blur and unsharp method
gaussian_1 = cv2.GaussianBlur(image, (9,9), 10.0)
unsharp_image = cv2.addWeighted(image, 1.5, gaussian_1, -0.5, 0, image)
#apply filter to find stamp pieces, histogram equalization on greyscale
hist_eq = cv2.equalizeHist(unsharp_image)
#edge detection (input,threshold1,threshold2,size_for_sobel_operator)
edges = cv2.Canny(hist_eq,50,150,apertureSize = 3)
#find lines (edges,min_pixels,min_degrees,min_intersections,lineLength,LineGap)
lines = cv2.HoughLinesP(edges,1,np.pi/180,50,minLineLength,maxLineGap)

只有我将这个单独应用于董事会的 9 个部分,但这并不重要。

TLDR: 我怎样才能使我的形象使我的线条“清晰”和锐利?我想知道我可以用什么来使标记的“X”看起来像几行。

【问题讨论】:

    标签: python python-2.7 opencv numpy image-processing


    【解决方案1】:

    您可以使用 Otsu's robust method for determining the dual threshold value 尝试 Canny 边缘检测器。

    im = cv2.imread('9WJTNaZ.jpg', 0)
    th, bw = cv2.threshold(im, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
    edges = cv2.Canny(im, th/2, th)
    

    然后就可以使用了

    • 轮廓的凸面缺陷

    • 填充轮廓的区域到轮廓边界框的区域

    区分十字标记和圆圈。

    这就是我将 Canny 应用到您的图像时得到的结果。

    【讨论】:

      【解决方案2】:

      由于您使用的是墨水印章,因此实施边缘检测方法,然后再实施某种字符识别方法 (?) 是一条艰难的路。

      您是否尝试过使用简单的连通分量算法?即使您的图像中存在光照变化,对一些标准二值化技术进行一些修改也应该会产生合理的结果。

      http://docs.opencv.org/master/d3/dc0/group__imgproc__shape.html#gsc.tab=0

      获得组件后,您将获得有关力矩、周长等的数据,这些数据将引导您快速进行计算以区分这两种标记。

      无论您使用何种技术,请先考虑减小图像尺寸,以便处理更少的像素。您可能会注意到创建较小图像的其他一些好处。

      如果可以的话,给你的相机添加一个小的漫射光。这应该会使您的编程任务更轻松,检测更可靠。

      【讨论】:

        猜你喜欢
        • 2013-12-17
        • 1970-01-01
        • 1970-01-01
        • 2017-08-29
        • 1970-01-01
        • 2022-01-26
        • 2017-07-06
        • 2015-08-29
        • 2010-12-01
        相关资源
        最近更新 更多