作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
函数原型
void findNonZero( InputArray src, OutputArray idx );
参数说明
- InputArray类型的src,输入图像,如Mat类型。
- OutputArray类型的idx,非零点存放集合。
测试代码
#include <iostream>
#include <opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
cv::Mat test(10, 10, CV_8UC1, cv::Scalar(0));
for (int i = 0; i < 10; ++i)
{
uchar *t = test.ptr<uchar>(i);
for (int j = 0; j < 9; ++j)
{
t[j] = rand() % 255;
}
}
vector<cv::Point> idx;
cv::findNonZero(test, idx);
cout << "number:" << idx.size() << endl;
for (auto i : idx)
{
cout << "x:" << i.x << " y:" << i.y << endl;
}
system("pause");
return 0;
}
测试效果


测试代码中,随机生成10*10的矩阵,并将最后一列保留为零,统计非零点个数为90,一般我喜欢用vector存放非零点,大家也可以用自己熟悉的容器存放。
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容