我正在寻找一个特定的封闭式(〜)四边形(一张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