2012-01-23 49 views
0

我在android應用上使用opencv庫。從攝像頭拍攝的圖像中,我想閱讀一個複選框(我已經有複選框的位置),並查看複選框是否已填充。即我想知道複選框內的區域是否部分或完全填充了暗像素。用openCV讀取複選框

我正在使用jni接口,所以我使用的是C++語言。我想知道如何在複選框中找到這些像素的值,以便我知道大多數複選框都充滿了黑色(黑色)像素。

+0

當你說「我已經有了複選框的位置」,這是否意味着你知道中心/角落/像素的像素座標及其像素大小? –

+0

如果您嘗試訪問像素值,請嘗試[this SO](http://stackoverflow.com/questions/8963617/opencv-fastest-way-to-extract-individual-pixel-data)。 –

+0

如果複選框的狀態有不同的顏色/表示,該怎麼辦?像未點擊的紅點和檢查的綠點? –

回答

1

如果你知道完整的表單看起來像什麼,我們假設你有一個存儲在某個地方的圖像。然後,我們可以使用特徵點將相應圖像的另一個實例檢測爲攝像機圖像內的平面對象,如find_obj.cpp sample中所示。 locatePlanarObject()函數實際上爲我們提供了一個單應性矩陣,我們可以直接使用cvWarpPerspective()來縮回捕獲的圖像以與存儲的圖像相匹配。假設您知道存儲圖像中複選框的位置,我們可以簡單地直接比較像素值。對於「黑暗」像素數量的某種閾值應該適用於IMO。

哦,我想你想知道更多關於如何訪問像素值。這已經在很多地方被覆蓋了,例如:Pixel access in OpenCV 2.2