如何找到二進制圖像(cv :: Mat)中所有非零像素的位置?我是否必須掃描圖像中的每個像素,還是有可用的高級別OpenCV函數?輸出應該是點(像素位置)的矢量。OpenCV - 二進制圖像中所有非零像素的位置
例如,這可以在Matlab進行簡單的:
imstats = regionprops(binary_image, 'PixelList');
locations = imstats.PixelList;
,或者更簡單
[x, y] = find(binary_image);
locations = [x, y];
編輯:換句話說,如何找到所有非座標零元素在cv :: Mat中?
你使用哪個版本的opencv?在2.4.4 python版本中,我可以找到類似的函數「cv2.findNonzero」,這意味着它也應該在C++中。但它不在文檔中。因此安裝2.4.4並檢查該功能。 – 2013-03-05 18:32:25
Thx,在我的OpenCV版本2.4.2(C++)中沒有cv :: findNonzero。 – Alexey 2013-03-05 19:20:51
我認爲它在2.4.4。我從2.4.4 python版本中得到它。所以,如果你想使用它,你可能會更新到2.4.4 – 2013-03-05 19:22:39