我有一个OpenCV轮廓c
,它的形状接近四边形,但它可以有4到数十个点。
我想找到最接近轮廓c
的四边形q
(一种方法是最小化它们之间差异的面积)。
我目前使用的是
q = cv2.approxPolyDP(c, 0.02 * cv2.arcLength(c, True), closed=True)
但结果并不总是一个四边形。我已经尝试过像cv2.approxPolyDP(),cv2.arcLength()这些方法和如何强制approxPolyDP()只返回最佳的4个角点?-Opencv 2.4.2(例如二分查找),但它并不总是产生四边形。
还有其他方法(可能使用除了approxPolyDP
以外的东西)来找到轮廓的最佳四边形逼近吗?
注意:另一个相关问题是基于最大四边形轮廓裁剪图像OpenCV,但它没有解决此问题。