2011-06-15 63 views
8

我找一套正確的算法來解決這個圖像處理問題:查找圖像(OpenCV的)扭曲的矩形

  • 我有一個包含一個扭曲的矩形
  • 我需要找到一個扭曲的二進制圖像這個矩形的4個角點的近似值

我可以使用OpenCV計算輪廓,但由於圖像失真,它通常會包含4個以上的角點。 是否有一個很好的近似算法(最好使用OpenCV操作)使用二值圖像或輪廓描述來查找矩形角點?

圖像看起來是這樣的:

enter image description here

謝謝!

丹尼斯

+1

一如既往的這樣的問題,樣本圖像將是非常有益的。 – etarion 2011-06-15 11:27:39

+0

我添加了一個圖像,我希望這將有助於找到解決方案。 – 2011-06-15 11:57:15

回答

1

看看OpenCV的功能ApproxPoly。它接近輪廓的多邊形。

0
  1. 如果你開始與一些缺陷,即你的approxPolly調用返回壓抑/六邊形這會甚至工作。它將減少任何輪廓,例如transContours,四邊形或任何你想要的聚合物。
  2. 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; 
    }