opencv 绘制单通道图片的直方图
2013-04-29 23:13
267 查看
1. [文件] hist_img.h
#ifndef HIST_IMG_H_INCLUDED #define HIST_IMG_H_INCLUDED #include <opencv\cv.h> #include <opencv\cxcore.h> #include <iostream> #define LOW_BOUND (0.f) #define HIGH_BOUND (255.f) #define BINS (10) #define BINWIDTH (20) /**- Get a histogram image of the input image. @param pImage an 1 channel image @return Returns a histogram image -**/ IplImage* HistImage(IplImage* pImage); #endif // HIST_IMG_H_INCLUDED
2. [文件] hist_img.cpp
#include "hist_img.h" using namespace std; IplImage* HistImage(IplImage* pImage) { if (!pImage) { cerr<<"The input image is NULL."<<endl; return NULL; } if (1 != pImage->nChannels) { cerr<<"The input image's channels is not equal to 1."<<endl; return NULL; } // create a histogram int histSize = BINS; float** range = new float*; range[0] = new float[2]; range[0][0] = LOW_BOUND; range[0][1] = HIGH_BOUND; CvHistogram* pHist = cvCreateHist(1,&histSize,CV_HIST_ARRAY,range); cvCalcHist(&pImage,pHist); float fMaxValue = 0.f; cvGetMinMaxHistValue(pHist,0,&fMaxValue,0,0); // generate the histogram image int height = 240; int interval = cvRound(BINWIDTH * 2 / 5); int width = histSize * BINWIDTH + (histSize - 1)*interval; IplImage* pHistImg = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,3); cvZero(pHistImg); for (int i = 0;i < histSize;i++) { float fBinValue = cvQueryHistValue_1D(pHist,i); int BinHeight = cvRound(fBinValue / fMaxValue * height); CvScalar color = cvScalar(i*255/histSize,255,255,0); CvPoint point1 = cvPoint(i*(BINWIDTH + interval),height); CvPoint point2 = cvPoint(point1.x + BINWIDTH,height - BinHeight); cvRectangle(pHistImg,point1,point2,color,-1,8,0); } cvReleaseHist(&pHist); delete[] range[0]; delete range; return pHistImg; }
相关文章推荐
- OpenCV 绘制单通道图片的直方图
- Qt 5.3 下OpenCV 2.4.11 开发(7)单通道直方图绘制
- OpenCV绘制图像中RGB三个通道的直方图
- OpenCV之单通道图像的直方图绘制
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- opencv2通过比较直方图检索相似图片
- Opencv绘制直方图及创建按钮遇到的问题
- opencv学习笔记9 直方图均衡化并绘制直方图
- opencv 绘制矩形,提取矩形区域的直方图
- 利用opencv绘制 灰度直方图 RGB直方图 HSV直方图 直方图均衡化
- opencv3 for python 之 创建图片绘制简单几何图形
- 使用openCV查看png图片的各通道值
- opencv3 绘制二维直方图-H-S直方图
- opencv提取图片直方图的的波谷的的x值
- 【OpenCV】绘制直方图
- opencv图像直方图的计算及绘制
- opencv学习之(五)-直方图计算和绘制图像直方图
- opencv 2.x学习笔记(十三)绘制直方图