个人资料,仅供学习使用
学习课程:OpenCV4 图像处理与视频分析实战教程——贾志刚
05 像素信息统计+图像直方图引入
opencv知识点:
- 图像像素最小/最大值 - minMaxLoc()
- 图像像素均值/标准差 - meanStdDev()
- 图像直方图统计
本课所解决的问题:
- 如何获取图像像素的最小/最大值?
- 如何获取图像像素的均值/标准差?
- 图像像素统计值用途是什么?
- 如何统计每个像素值都有多少?
1.像素信息统计
关于图像的像素信息统计,可以阅读 13 图像像素值统计,文章中非常详细。
2.图像直方图引入
上文介绍了四种统计,实际上有很多的统计,比如
- 图像直方图统计
这里仅展示图像直方图信息的获取,更全面的学习在后续进行
//256个动态数组,对应0~255
vector<int> hist(256);
//初始化为0
for (int i = 0; i < 256; i++) {
hist[i] = 0;
}
//统计每个像素值都有多少
for (int row = 0; row < h; row++) {
for (int col = 0; col < w; col++) {
int pv = src.at<uchar>(row, col);
hist[pv]++;
}
}
本课所用API查阅
minMaxLoc()
meanStdDev()
Mat::at
虽然有12种重载,但只有6种传参方式
1. 单维度坐标——i0:沿维度 0 的索引
2. 双维度坐标——row 沿维度 0 的索引 ;col 沿维度 1 的索引
3. 三维度坐标——i0 沿维度 0 的索引;i1 沿维度 1 的索引;i2 沿维度 2 的索引
4. 维度数组坐标——int数组
5. 维度数组坐标——vector数组
6. 点的坐标——point类