Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的OpenCV-强制四边形检测_Python_Opencv_Image Processing - Fatal编程技术网

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

python中的OpenCV-强制四边形检测,python,opencv,image-processing,Python,Opencv,Image Processing,我正在搜索一个特定的封闭(~)四边形(一张A4纸的照相手机照片),因为我想使用例如处的代码对其进行扭曲(除非多边形有4条边,否则无法接受多边形) 在python中,使用cv2.approxPolyDP()为一张照片提取提供了一个16边多边形,不适合通过上述方法进行扭曲。也许还有另一种方法 我已经试着在第二遍中运行cv2.approxPolyDP(),但它没有帮助,我也找不到一种方法来强制执行四边形(在其他问题中几乎提到过,但不完全提到) 为免生疑问,矩形只是四边形的一种特殊情况 有什么想法吗?谢

我正在搜索一个特定的封闭(~)四边形(一张A4纸的照相手机照片),因为我想使用例如处的代码对其进行扭曲(除非多边形有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

这难道不能回答你的问题吗?如果需要帮助,请提供代码和输入图像。您甚至没有提到用于approxPolyDP()的参数。我也不明白为什么你不能简单地从比赛中得到你需要的4分polygon@Piglet好了。现在每个人都可以避免回答一般性的问题,并给出许多具体的建议。你可以自由地问一般性的问题,但提供细节总是有帮助的。我们如何知道你的轮廓中没有其他5个不属于卡的东西?你的ε呢?为什么这么小?这不回答你的问题吗?如果需要帮助,请提供代码和输入图像。您甚至没有提到用于approxPolyDP()的参数。我也不明白为什么你不能简单地从比赛中得到你需要的4分polygon@Piglet好了。现在每个人都可以避免回答一般性的问题,并给出许多具体的建议。你可以自由地问一般性的问题,但提供细节总是有帮助的。我们如何知道你的轮廓中没有其他5个不属于卡的东西?你的ε呢?为什么它这么小?