python中的OpenCV - 强制执行四边形检测

时间:2017-05-30 06:01:34

标签: python opencv image-processing

我正在寻找一个特定的封闭式(〜)四边形(一张A4纸的照相手机照片),因为我想用它来翘曲它。 http://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspective-transform-example处的代码(除非它有4个边,否则不能接受多边形)。

在python中,使用cv2.approxPolyDP()为一张照片提取一个16边多边形,这不适合通过上述方法进行变形。也许还有另一种方式。

我已尝试在第二次通过中运行cv2.approxPolyDP(),但它没有帮助,我无法找到强制执行四边形的方法(这在其他方面几乎没有提及题)。

为避免疑问,矩形只是四边形的一个特例。

有什么想法吗?谢谢!

修改

我不想发布图片或代码,因为这是一个普遍的问题,而且我不想要大量的手动回复说"算法x的工作原理在这张图片"。但如果你坚持:\

以下是阅读下图的代码:

import cv2
image_src = cv2.imread('IieL8.jpg')
contours, _ =cv2.findContours(image_src,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
approxes=[]
for c in contours:
    approx=cv2.approxPolyDP(c,cv2.arcLength(c,True)*0.02,True)
    print approx.size
    approxes.append(approx)

# Do something with approximations
# print approxes

Canny-detected input image

0 个答案:

没有答案