我试图用 opencv 的函数得到一条漂亮的平滑线line(),但线变得粗糙(见图)。我正在使用opencv 3.1.0并遵循:
for x, y in outline :
if prevX < 0 and prevY < 0 :
prevX = x
prevY = y
continue
whitedrop = cv2.line(whitedrop, (int(prevX), int(prevY)), (int(x), int(y)), (141, 141, 141), 1, cv2.LINE_AA )
prevX = x
prevY = y
Run Code Online (Sandbox Code Playgroud)
结果来了。我只谈论大纲。对我来说它看起来不像抗锯齿:
关于出了什么问题有什么想法吗?
谢谢!
我试图获得他们在本教程中为HoughLinesP过滤器获得的相同结果.我拍摄了相同的图像和相同的阈值,如下所示:
import cv2
from line import Line
import numpy as np
img = cv2.imread('building.jpg',1)
cannied = cv2.Canny(img, 50, 200, 3)
lines = cv2.HoughLinesP(cannied, 1, np.pi / 180, 80, 30, 10)
for leftx, boty, rightx, topy in lines[0]:
line = Line((leftx, boty), (rightx,topy))
line.draw(img, (255, 255, 0), 2)
cv2.imwrite('lines.png',img)
cv2.imwrite('canniedHouse.png',cannied)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
Lineclass是一个自定义类,它不会做任何有趣的事情只计算一些东西并且可以画线.然后我得到这两个图像:

所以你可以看到我在图像的中间只有一条litle线.
不确定出了什么问题.我错过了什么?
谢谢.