opencv findNonZero 用法
时间: 2023-07-07 08:38:41 浏览: 223
SpringBoot使用OpenCV示例总结
5星 · 资源好评率100%
OpenCV的findNonZero函数用于在一个二值图像中查找非零元素的位置,其函数原型如下:
```c++
void findNonZero(InputArray src, OutputArray idx);
```
其中,src是输入图像,可以是任意维度的Mat对象;idx是输出矩阵,用于存储非零元素的位置,其类型和维度与输入图像相同。
下面是一个简单的示例代码,演示了如何使用findNonZero函数在一个二值图像中查找非零元素的位置:
```c++
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个二值图像
cv::Mat binary = (cv::Mat_<uchar>(3, 3) << 0, 1, 0,
1, 0, 1,
0, 1, 0);
// 查找非零元素的位置
cv::Mat idx;
cv::findNonZero(binary, idx);
// 输出结果
std::cout << idx << std::endl;
return 0;
}
```
在这个示例中,我们创建了一个3x3的二值图像,并使用findNonZero函数查找了其中非零元素的位置。最后的输出结果应该是:
```
[1, 1;
2, 0;
2, 2]
```
表示二值图像中第(1,1)、(2,0)和(2,2)个位置是非零元素的位置。
阅读全文