Image processing 在图像中查找扭曲的矩形(OpenCV)
我正在寻找一套正确的算法来解决这个图像处理问题:Image processing 在图像中查找扭曲的矩形(OpenCV),image-processing,opencv,camera-calibration,Image Processing,Opencv,Camera Calibration,我正在寻找一套正确的算法来解决这个图像处理问题: 我有一个扭曲的二值图像,其中包含一个扭曲的矩形 我需要找到这个矩形的4个角点的一个很好的近似值 我可以使用OpenCV计算轮廓,但由于图像扭曲,它通常包含4个以上的角点。 是否有一个好的近似算法(最好使用OpenCV操作)来使用二值图像或轮廓描述查找矩形角点 图像如下所示: 谢谢 丹尼斯我会尝试广义霍夫变换,它有点慢,但能很好地处理扭曲/不完整的形状 查看opencv函数ApproxPoly。它从轮廓近似多边形。使用函数消除轮廓的节点数,然
- 我有一个扭曲的二值图像,其中包含一个扭曲的矩形
- 我需要找到这个矩形的4个角点的一个很好的近似值
丹尼斯我会尝试广义霍夫变换,它有点慢,但能很好地处理扭曲/不完整的形状
查看opencv函数ApproxPoly。它从轮廓近似多边形。使用函数消除轮廓的节点数,然后过滤掉节点过多或角度相差90度的轮廓。另请参见尝试Harris角点检测器。OpenCV包中有一个示例。为了你的形象,你需要使用params
请参阅其他OpenCV算法:答案略有不同,请参阅
vector cardPoly;//四元存储器
int多段线=0//多聚物计数器;)
双重简单性=0.5//调整的增量,较低的数字可能更精确,而较高的数字循环更快。
while(多段线!=4)//调整此值
{
approxPolyDP(transContours、Poly、Simply、true);
多段线=Poly.size();
简单性+=0.5;
}
像往常一样,对于这样的问题,示例图像会非常有用。我添加了一个图像,希望这将有助于找到解决方案。断开的链接:((8年后不足为奇…))
vector<Point> cardPoly;// Quad storage
int PolyLines = 0;//PolyPoly counter ;)
double simplicity = 0.5;//Increment of adjustment, lower numbers may be more precise vs. high numbers being faster to cycle.
while(PolyLines != 4)//Adjust this
{
approxPolyDP(transContours, Poly, simplicity, true);
PolyLines = Poly.size();
simplicity += 0.5;
}