如何找到二进制图像(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