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 |