C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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不在文档中.

大佬总结

以上是大佬教程为你收集整理的c – OpenCV – 二进制图像中所有非零像素的位置全部内容,希望文章能够帮你解决c – OpenCV – 二进制图像中所有非零像素的位置所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。