求救用C++绘直方图
来源:百度知道 编辑:UC知道 时间:2024/06/01 20:02:08
涉及知识:除有图形函数的调用之外,还有矩形图形的绘制/封闭图形的填充等。
相关函数:bar()函数 setfillstyle()函数
最好能照这个题目编下 谢谢了
单通道图像的直方图(C/C++源代码)
计算并绘制单通道图像的直方图。在MATLAB中绘制直方图是一件非常简单的事情,可是到了C环境下,竟然变成了一个问题。各种实现方法都有,而且要自己动手重新编程。幸好有了OPENCV。下面的代码要求OPENCV4.0的支持,并在VC6中编译通过。
转自阿须数码
//
// 对单通道图像做直方图
//
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <ctype.h>
int main( int argc, char** argv )
{
IplImage *src = 0;
IplImage *histimg = 0;
CvHistogram *hist = 0;
int hdims = 50; // 划分HIST的个数,越高越精确
float hranges_arr[] = {0,255};
float* hranges = hranges_arr;
int bin_w;
float max_val;
int i;
if( argc != 2 || (src=cvLoadImage(argv[1], 0)) == NULL) // force to gray image
return -1;
cvNamedWindow( "Histogram", 1 );
hist = cvCreateHist( 1, &hdims, CV_HIST_ARRAY, &hranges, 1 ); // 计算直方图
histimg = cvCreateImage( cvSize(320,200), 8, 3 );
cvZero( histimg );
cvCalcHist( &src, hist, 0, 0 ); // 计算直方图