【发布时间】:2017-06-20 09:50:08
【问题描述】:
我正在使用 Python 3.6,几乎只有 OpenCV.3。 我正在尝试自动找到一张纸的轮廓以将其裁剪为合适的尺寸,例如:
我看过很多关于完全相同主题的帖子,但最后对我来说没有任何意义。
这是我使用的代码:
orig = cv2.imread("Image.jpg")
cv2.imshow('result', imutils.resize(orig, height=600))
cv2.waitKey(0)
img = cv2.cvtColor(orig, cv2.COLOR_BGR2GRAY)
cv2.GaussianBlur(img, (3,3), 0, img)
edges = cv2.Canny(img,10,20,apertureSize = 3)
cv2.imshow('result', imutils.resize(edges, height=600))
cv2.waitKey(0)
这是输出:
所以现在我尝试使用 HougLines 或 HougLinesProbabilities 查找计数。
#minLineLength=100000
#maxLineGap=50
#lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
lines = cv2.HoughLines(edges,1,np.pi/180*10,150,0,0)
但是我没有任何可用的东西..(如果我在这里有更多的声誉,我可以添加我获得的东西) 我不知道我是否不必使用 HoughLines 或者我是否无法获得正确的参数.. 我已经研究过角点检测,但这是完全相同的问题。
有什么想法吗?
【问题讨论】:
-
你正在寻找一个矩形吗?尝试在您的精明图像中找到最大的矩形(3D),这将得到纸张。旁注:正如我的建议所见,图像处理解决方案通常是针对特定问题的。如果一张白纸上写着 SO 的好词不是你常见的情况,你应该尝试添加真实的
-
它会被消耗掉,所以有点像。仍然是矩形,仍然是白色,等等。我试图找到最大的矩形,但大多数情况下它不起作用,因为整个矩形不完整,大部分时间一侧缺少一半。
标签: python opencv image-processing crop edge-detection