countNonZero

函数功能

countNonZero用于计算矩阵或图像中非零像素的数量。可以快速统计图像中某种特定特征的出现次数。

函数接口

1
int countNonZero(InputArray src);

参数

参数名

描述

取值范围

输入/输出

src

输入图像。

非空、单通道

输入

返回值

错误码

错误码

描述

INVALID_PARAM_MSG

输入图像为空。

NOT_SUPPORT_MSG

输入图像类型错误。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
    // 创建一个5x5的二值图像
    cv::Mat src = (cv::Mat_<uint8_t>(5, 5) << 0, 0, 0, 0, 0,
                                              0, 1, 1, 1, 0,
                                              0, 1, 0, 1, 0,
                                              0, 1, 1, 1, 0,
                                              0, 0, 0, 0, 0);

    // 统计非零像素的数量
    int count = cv::countNonZero(src);

    std::cout << "非零像素数量: " << count << std::endl;

    return 0;
}

运行结果:

1
非零像素数量: 8