我找一套正確的算法來解決這個圖像處理問題:查找圖像(OpenCV的)扭曲的矩形
- 我有一個包含一個扭曲的矩形
- 我需要找到一個扭曲的二進制圖像這個矩形的4個角點的近似值
我可以使用OpenCV計算輪廓,但由於圖像失真,它通常會包含4個以上的角點。 是否有一個很好的近似算法(最好使用OpenCV操作)使用二值圖像或輪廓描述來查找矩形角點?
圖像看起來是這樣的:
謝謝!
丹尼斯
我找一套正確的算法來解決這個圖像處理問題:查找圖像(OpenCV的)扭曲的矩形
我可以使用OpenCV計算輪廓,但由於圖像失真,它通常會包含4個以上的角點。 是否有一個很好的近似算法(最好使用OpenCV操作)使用二值圖像或輪廓描述來查找矩形角點?
圖像看起來是這樣的:
謝謝!
丹尼斯
使用cvApproxPoly函數消除輪廓節點的數量,然後過濾掉那些節點太多或角度與90度大不相同的輪廓。請參閱similar answer
我會嘗試廣義Hough變換它與扭曲/不完整的形狀有點慢,但交易良好。
看看OpenCV的功能ApproxPoly。它接近輪廓的多邊形。
嘗試哈里斯角探測器。 OpenCV包中有一個例子。你需要玩你的形象params。
而看其他的OpenCV算法:http://www.comp.leeds.ac.uk/vision/opencv/opencvref_cv.html#cv_imgproc_features
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;
}
一如既往的這樣的問題,樣本圖像將是非常有益的。 – etarion 2011-06-15 11:27:39
我添加了一個圖像,我希望這將有助於找到解決方案。 – 2011-06-15 11:57:15