我正在进行一个图像处理项目,我正试图用opencv 3.4.0和python 3检测扭曲图像中的正方形形状。
正如你所看到的那样,黑色正方形非常扭曲,但是我只对检测到焦点而不是扭曲的右侧感兴趣。
我已经尝试使用 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)
我也尝试过使用Canny和findContours方法,但它效果不好,而且我无法模糊图像。 我想获得下图所示的结果:
由于