计算图像R、G、B三色的直方图

来源:互联网 发布:mac os sierra下载失败 编辑:程序博客网 时间:2024/04/30 00:20
VS2010+Opencv2.4.6
#include "stdafx.h"#include "cv.h"#include "cxcore.h"#include "highgui.h"IplImage* DrawHistogram(CvHistogram *hist,int scaleX=1,int scaleY=1){float histMax=0;cvGetMinMaxHistValue(hist,0,&histMax,0);IplImage *imgHist=cvCreateImage(cvSize(256*scaleX,64*scaleY),IPL_DEPTH_8U,1);cvZero(imgHist);for (int i=0;i<255;i++){float histValue=cvQueryHistValue_1D(hist,i);float nextValue=cvQueryHistValue_1D(hist,i+1);CvPoint pt1=cvPoint(i*scaleX,64*scaleY);CvPoint pt2=cvPoint((i+1)*scaleX,64*scaleY);CvPoint pt3=cvPoint((i+1)*scaleX,(64-(int)((nextValue/histMax)*64)*scaleY));CvPoint pt4=cvPoint(i*scaleX,(int)((64-(histValue/histMax)*64)*scaleY));int numPts=5;CvPoint pts[5];pts[0]=pt1;pts[1]=pt2;pts[2]=pt3;pts[3]=pt4;pts[4]=pt1;cvFillConvexPoly(imgHist,pts,numPts,cvScalar(255));}return imgHist;}int main(int argc, char* argv[]){IplImage *img=cvLoadImage("F:\\1.jpg");if(img==NULL){printf("加载图像失败!\n");}cvNamedWindow("T");cvShowImage("T",img);    cvWaitKey(0);int dims=1;int size=256;float range[]={0,255};float* ranges[]={range};CvHistogram *hist=cvCreateHist(dims,&size,CV_HIST_ARRAY,ranges,1);cvClearHist(hist);IplImage *blue_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);IplImage *red_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);IplImage *green_img=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);cvSplit(img,blue_img,green_img,red_img,NULL);    cvCalcHist(&blue_img,hist,0,0);IplImage *b_imgHist=DrawHistogram(hist);cvClearHist(hist);    cvCalcHist(&green_img,hist,0,0);IplImage *g_imgHist=DrawHistogram(hist);cvClearHist(hist);cvCalcHist(&red_img,hist,0,0);IplImage *r_imgHist=DrawHistogram(hist);cvClearHist(hist);cvNamedWindow("B");cvNamedWindow("G");cvNamedWindow("R");    cvShowImage("B",b_imgHist);cvShowImage("G",g_imgHist);cvShowImage("R",r_imgHist);cvWaitKey(0);cvReleaseImage(&b_imgHist);cvReleaseImage(&g_imgHist);cvReleaseImage(&r_imgHist);cvReleaseImage(&img);cvDestroyWindow("B");cvDestroyWindow("G");cvDestroyWindow("R");cvDestroyWindow("T");return 0;}


0 0
原创粉丝点击