计算彩色图像的色调、饱和度二维直方图,简称H-S直方图。
颜色空间转换,从RGB彩色原图,转换为HSV颜色空间。色调H,饱和度S,亮度V。
一、c++示例代码
//包含头文件
#include <opencv2/opencv.hpp>
//命名空间
using namespace cv;
using namespace std;
//全局函数声明部分
//主函数
int main()
{
//【1】载入图像
Mat image = imread("G:\\opencvtest\\testImage\\airplane.jpg");
//【2】检查是否载入成功
if (image.empty())
{
printf("读取图片错误,请确认目录下是否有imread函数指定图片存在! \n ");
return 0;
}
//【3】颜色空间转换HSV颜色模型
Mat hsvImage;
cvtColor(image, hsvImage, COLOR_BGR2HSV);
//【4】计算H-S二维直方图
const int nimages = 1;//输入图像个数
int channels[] = {0,1};//色调H在通道0,饱和度S在通道1,亮度V在通道2
MatND hist;//输出直方图
int dims = 2;//二维直方图
int histSize[] = {30, 32};//色调H量化为30个等级,饱和度S量化为32个等级
float Hhranges[] = {0, 179};//色调H的取值范围
float Shranges[] = {0, 255};//饱和度S的取值范围
const floa