一、计算图像的直方图
1.概念及原理
(1)直方图是一个简单的表,它给出了一幅图像或一组图像中拥有给定数值的像素数量。例如灰度图像的直方图有265个条目(或称为容器)。0号容器给出值为0的像素个数,1号容器给出值为1的像素个数,依次类推。显然对直方图的所有项求和会得到像素的总数。直方图也可以被归一化,归一化后的所有项之和等于1,在这种情况下,每一项给出的都是拥有特定数值的像素在图像中占的比例。
(2)使用一个阈值来创建二值图像时可以使用cv::threshold。
2.实验
计算一张单通道的灰度图像的直方图。
源码:
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace std;
class Histogram1D{
private:
int histSize[1]; //项的数量
float hranges[2]; //像素的最小及最大值
const float *ranges[1];
int channels[1]; //仅用到一个通道
publi