2011-11-09 87 views
0

我已經安裝了opencv並在我的iphone上工作(非常感謝這個社區)。我正在做模板匹配。它確實在捕獲的圖像中找到了對象。然而,確切的位置似乎很難說。opecv模板匹配 - >獲取確切位置?

請看看下面的視頻(18秒): http://www.youtube.com/watch?v=PQnXNZMqpsU

正如你可以看到在視頻,它確實找到圖像中的模板。但是當我將相機移動得更遠時,找到的模板就位於該方塊內的某處。這樣很難說出找到的物體的確切位置。

您看到的正方形基本上是模板的x,y位置以及實際模板圖像的寬度和高度。

所以基本上我的問題是,有沒有辦法找到找到的模板圖像的確切位置?因爲目前它可以在該廣場內的任何位置。沒有真正的方法來確切的位置...?

回答

2

看來你是不是非常高興能與您的模板匹配算法:)

不久,有對其進行改進某些方面,但我會建議你到別的試一下。如果您的圖像總是與視頻中一樣簡單,則可以使用閾值,輪廓查找,斑點檢測等。它們簡單快速。

對於要求更高的環境,您可以嘗試特徵匹配。查找SIFT,SURF,ORB或其他方式來描述具有特徵的對象。實際上,ORB專門設計的速度足以滿足移動電話的有限功率要求。

嘗試在OCV樣本/ CPP /文件夾 matching_to_many_images.cpp

此樣品,檢查瞭如何使用功能的探測器本詳細的解答; Detecting if an object from one image is in another image with OpenCV

+0

感謝您指出可能的功能。這使得搜索很容易:-) – w00

1

模板匹配(cvMatchTemplate())對縮放和旋轉不是不變的。當您將手機移回時,圖像顯得更小,模板「匹配」只是匹配得分最高的地方,儘管它並不是真正的匹配。
如果您想要縮放和/或旋轉不變性,您將不得不嘗試使用非模板匹配方法,例如使用2D-feature descriptors的方法。
查看如何做到這一點的OpenCV samples for examples

+0

好的謝謝,我認爲匹配是規模/旋轉不變。但顯然不是。是不是有一些內置的功能(不一定是模板匹配)來查找圖像中的某個對象?就像被其他水果包圍的橙色一樣。或在大海報上的某個標誌。我在OpenCV中找不到具體的功能,更多的是關於尺度/旋轉不變匹配的理論。你有關於OpenCV的具體信息嗎? – w00