在Python中的OpenCV - 强制四边形检测

2024-03-28 16:25:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在搜索一个特定的闭合(~)四边形(一张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


Tags: 方法代码图像imagesrctrue多边形cv2