使用opencv和python检测扭曲图像中的形状

时间:2018-03-27 08:58:46

标签: python opencv

我正在进行一个图像处理项目,我正试图用opencv 3.4.0和python 3检测扭曲图像中的正方形形状。

图像是这样的: Input image

正如你所看到的那样,黑色正方形非常扭曲,但是我只对检测到焦点而不是扭曲的右侧感兴趣。

我已经尝试使用 Hough Line Transformation 方法和下面的代码,但它检测到正方形的直线:

temp = cv2.imread("images/macro/noF3.jpg")
grTemp = cv2.cvtColor(temp, cv2.COLOR_BGR2GRAY)
asd = cv2.Canny(grTemp, 50, 150, apertureSize = 3)
lines = cv2.HoughLines(asd.copy(), 1, np.pi/180, 200)
for rho, theta in lines[0]:
    a = np.cos(theta)
    b = np.sin(theta)
    x0 = a*rho
    y0 = b*rho
    x1 = int(x0 + 1000*(-b))
    y1 = int(y0 + 1000*(a))
    x2 = int(x0 - 1000*(-b))
    y2 = int(y0 - 1000*(a))

    cv2.line(temp, (x1,y1), (x2,y2), (255,0,0), 3)

Hough Line Transformation

我也尝试过使用Canny和findContours方法,但它效果不好,而且我无法模糊图像。 我想获得下图所示的结果:

Desidered result

由于

0 个答案:

没有答案