c – OpenCV – 二进制图像中所有非零像素的位置

前端之家收集整理的这篇文章主要介绍了c – OpenCV – 二进制图像中所有非零像素的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在二进制图像(cv :: Mat)中找到所有非零像素的位置?我必须扫描图像中的每个像素,还是有一个可以使用的高级OpenCV功能输出应该是一个点(像素位置)的向量.

例如,这可以在Matlab中完成:

imstats = regionprops(binary_image,'PixelList');
locations = imstats.PixelList;

或者甚至更简单

[x,y] = find(binary_image);
locations = [x,y];

编辑:换句话说,如何在cv :: Mat中找到所有非零元素的坐标?

解决方法

根据@AbidRahmanK的建议,OpenCV版本2.4.4中有一个函数cv :: findNonZero.用法
cv::Mat binaryImage; // input,binary image
cv::Mat locations;   // output,locations of non-zero pixels 
cv::findNonZero(binaryImage,locations);

它做这个工作.此功能在OpenCV版本2.4.4中引入(例如,在2.4.2版本中不可用).另外,到目前为止,由于某些原因,NONZero不在文档中.

原文链接:https://www.f2er.com/c/116299.html

猜你在找的C&C++相关文章