资源简介
采用VC++和opencv对图像进行直方图均衡化,并显示图像及直方图,带有图片,能成功运行

代码片段和文件信息
#include
#include
#include
#include
#define HDIM 256
int main(int argcchar** argv)
{
IplImage *dst=0*src=0;
CvHistogram *histogram;
CvHistogram *HistEqualization;
IplImage *histOriginal;//原图像的直方图
IplImage *HistEquAfter;//均衡化后直方图
float HistogramRange1[2]={0255};
float *HistogramRange[1]={&HistogramRange1[0]};
int n=HDIM;
double nn0[HDIM];
int srcnn00[HDIM];
uchar T0[HDIM];
CvMat *T_mat0;
int i=0;
int sum = 0; //sum of pixels of the source image
double val0=0;
int val1=0;
if((src=cvLoadImage(“4.jpg“0)) == NULL) // force to gray image
{
printf(“Read Image Error!“);
return -1;
}
//原图像的直方图
histOriginal = cvCreateImage(cvSize(300400)83);
histOriginal->origin=1;
histogram = cvCreateHist(1&nCV_HIST_ARRAYHistogramRange1);
cvCalcHist(&srchistogram00);
// Compute intensity transformation
sum = src->height * src->width;
for( i = 0; i < n; i++ )
{
val0 = val0 + cvGetReal1D (histogram->bins i);
nn0[i]=val0;
T0[i] = (uchar) (255*nn0[i]/sum); // range is [0255]
srcnn00[i]=(int)(nn0[i]*255/sum);
cvLine(histOriginalcvPoint(i0)cvPoint(i(int)(cvQueryHistValue_1D(histogrami)/3))CV_RGB(127127127));
}
// 直方图均衡化
dst = cvCloneImage(src);
T_mat0 = cvCreateMatHeader(1256CV_8UC1);
cvSetData(T_mat0T0src->width );
cvLUT( src dst T_mat0);
//均衡化后的直方图
HistEquAfter = cvCreateImage(cvSize(300400)83);
HistEquAfter->origin=1;
HistEqualization = cvCreateHist(1&nCV_HIST_ARRAYHistogramRange1);
cvCalcHist(&dstHistEqualization00);
for (i=0;i {
cvLine(HistEquAftercvPoint(i0)cvPoint(i(int)(cvQueryHistValue_1D(HistEqualizationi)/3))CV_RGB(127127127));
}
cvNamedWindow( “source“ 1 );
cvNamedWindow( “HistEquImage“ 1 );
cvNamedWindow( “S_Histogram“ 1 );
cvNamedWindow( “HistEqualization“ 1 );
cvShowImage( “source“ src );//原图像
cvShowImage( “HistEquImage“ dst );//均衡化后图像
cvShowImage(“S_Histogram“histOriginal);//原图像直方图
cvShowImage(“HistEqualization“HistEquAfter);//均衡化后直方图
cvWaitKey(-1);
cvReleaseImage( &src );
cvReleaseImage( &dst );
cvReleaseImage(&histOriginal);
cvReleaseImage(&HistEquAfter);
cvReleaseHist ( &histogram);
cvReleaseHist(&HistEqualization);
cvDestroyWindow(“source“);
cvDestroyWindow(“HistEquImage“);
cvDestroyWindow(“S_Histogram“);
cvDestroyWindow(“HistEqualization“);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 49661 2011-06-03 10:17 histSP\4.jpg
文件 192571 2011-06-17 10:10 histSP\Debug\histSP.exe
文件 208040 2011-06-17 10:10 histSP\Debug\histSP.ilk
文件 20086 2011-06-17 10:10 histSP\Debug\histSP.obj
文件 4117988 2011-06-17 00:43 histSP\Debug\histSP.pch
文件 467968 2011-06-17 10:10 histSP\Debug\histSP.pdb
文件 156672 2011-06-17 10:10 histSP\Debug\vc60.idb
文件 94208 2011-06-17 10:08 histSP\Debug\vc60.pdb
文件 249 2011-06-16 23:25 histSP\histSP.asp
文件 2561 2011-06-17 10:08 histSP\histSP.cpp
文件 3486 2011-06-17 10:10 histSP\histSP.dsp
文件 535 2011-06-17 10:10 histSP\histSP.dsw
文件 41984 2011-06-17 10:10 histSP\histSP.ncb
文件 48640 2011-06-17 10:10 histSP\histSP.opt
文件 801 2011-06-17 10:10 histSP\histSP.plg
目录 0 2011-06-17 10:10 histSP\Debug
目录 0 2011-06-17 10:10 histSP
----------- --------- ---------- ----- ----
5405450 17
相关资源
- VC++ 多线程文件读写操作
- 移木块游戏,可以自编自玩,vc6.0编写
- VC++MFC小游戏实例教程(实例)+MFC类库
- VC++实现CMD命令执行与获得返回信息
- VC++基于OpenGL模拟的一个3维空间模型
- 基于VC++的SolidWorks二次开发SolidWorks
- 派克变换VC++源码(附文档)
- VC++ 串口
- VC++ 大富翁4_大富翁游戏源码
- VC++ 摄像头视频采集与回放源程序
- 转 VC++ 实现电子邮件(Email)发送
- 基于MFC的VC++仿QQ浏览器源码(雏形)
- VC++ 服务程序编写及安装与卸载
- VC++6.0番茄西红柿VAXvirsual assist X完美破
- 基于改进的fcm算法的图像分割vc++
- VC++6.0 绿色版,免安装,非常好用。
- Microsoft Visual C++ 2005 Redistributable Pack
- VC++MFC课程设计的学生成绩管理系统
- 大智慧365DLL插件设计
- VC++6.0汉化包
- VC++完整商业界面源码(再上传)
- VC++编程技术600个大型项目源码.rar
- VC++实现RSA加密算法
- VC++ 中国象棋经典游戏源代码
- 郁金香VC++游戏辅助视频教程
- C语言进阶源码---基于graphics实现图书
- 摄影测量相对定向VC++程序
- VC++数字图像处理典型算法及实现
- VC++酒店客房管理系统 MFC
- 车站计算机联锁vc++6.0程序代码
评论
共有 条评论