这个程序根据输入的图像计算出一个色相饱和度直方图,然后利用网格的方式将直方图以网格形式显示。
Code:
#include<cv.h>
#include<highgui.h>
#include<stdio.h>
int main()
{
IplImage* src = NULL;
src = cvLoadImage ("lena.jpg", 1);
IplImage* hsv = cvCreateImage (cvGetSize(src), 8, 3);
cvCvtColor (src, hsv, CV_BGR2HSV);
IplImage* h_plane = cvCreateImage (cvGetSize(src), 8, 1);
IplImage* s_plane = cvCreateImage (cvGetSize(src), 8, 1);
IplImage* v_plane = cvCreateImage (cvGetSize(src), 8, 1);
IplImage* planes[] = {h_plane, s_plane};
cvCvtPixToPlane (hsv, h_plane, s_plane, v_plane, 0);
/*创建和计算直方图*/
int h_bins = 30;
int s_bins = 32;
CvHistogram* hist = NULL;
int hist_size[] = {h_bins, s_bins};
float h_ranges[] = {0, 180};
float s_ranges[] = {0, 255};
float* ranges[] = {h_