资源简介
采用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++ c++ c 软件自动升级程序源代码 在
- 黄维通Visual C++面向对象与可视化程序
- Microsoft vc++6.0代码提示插件
- Visual C++数字图像识别技术典型案例
- VC++实现动态创建对话框非常好的C++源
- VC++开发的斗地主的网络游戏源码
- VC++2010学习版和永久使用注册码
- 使用API函数实现的串口通讯DLL含源码
- 数据结构课程设计 山东大学版 文件
- 直方图均衡化 C语言源代码
- CSocket端口扫描源代码MFC、VC++耿网出品
- SMTP邮件发送MFC、VC++耿网出品
- VC++经典小游戏含代码 算法说明
- 遗传算法代码NSGA-II
- VC++浏览器
- VC+++聊天室程序设计
- (LSB算法)数字水印的嵌入和提取V
- 基于VC++的FFT频谱分析
- VC++MFC小游戏开发教程+扫雷+五子棋+俄
- VC++鼠标画直线程序
- 计算机网络课程实验:FTP协议的实现
- vc++2010旗舰版安装包.zip
- 基于VC++6.0的UDP通讯
- VC++斗地主单机版完整代码
- 基于VC++的信号发生器
- 用VC++实现多媒体播放器
- VC++ 共享内存读写操作
- VC++中Opengl实现建筑物虚拟漫游
- VC++ 模拟太阳系行星运行
- 遥感图像变化检测 VC++
评论
共有 条评论