• 大小: 1.33MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-20
  • 语言: 其他
  • 标签: 均衡化  直方图  

资源简介

vc代码实现图像直方图均衡化,并显示原始图像和处理后图像的直方图。

资源截图

代码片段和文件信息

#include “cv.h“
#include “highgui.h“


void main()
{
char* filename;
IplImage* frame;
IplImage* hframe;
IplImage* histogram;
    IplImage* chistogram;
int fheightfwidthfstepfdepth;
uchar *fdata*hdata*chdata;
int a[256]={0};
int b[256]={0};
int c[256]={0};
int ijm;


    //显示原始灰度级图像
filename=“coin.bmp“;
hframe=cvLoadImage(filename1);
fdepth=hframe->depth;
frame = cvCreateImage(cvGetSize(hframe) fdepth 1 );
cvCvtColor(hframeframeCV_BGR2GRAY);
cvNamedWindow(“处理前图像“1);
cvShowImage(“处理前图像“frame);

    //处理过程
fheight=frame->height;
fwidth=frame->width;
fstep=frame->widthStep/sizeof(uchar);
fdata=(uchar *)frame->imageData;

for (i=0;i {  
for (m=0;m<=255;m++)
{
if (fdata[i*fstep+j]==m)
{
                a[m]++;
    break;
}

}
}
int maxnum=0;
for(i=0;i<256;i++)
{
if (maxnum {
          maxnum=a[i];
}
}

//原始灰度级图像的直方图
histogram=cvCreateImage(cvSize(256maxnum/100+1)fdepth 1 );
hdata=(uchar *)histogram->imageData;
int s;
s=histogram->widthStep/sizeof(uchar);
for (i=0;i<(maxnum/100);i++)for (j=0;j<256;j++)
{
hdata[i*s+j]=255;
}

for(i=0;i<256;i++)
{
for(j=(maxnum-1)/100;j>=(maxnum-1-a[i])/100;j--)
hdata[j*s+i]=0;

}
cvNamedWindow(“处理前图像直方图“1);
cvShowImage(“处理前图像直方图“histogram);


for (i=0;i<=255;i++)//像素个数叠加
{
for (j=0;j<=i;j++)

b[i]+=a[j];

}

     for (i=0;i<=255;i++)//变换后灰度级
     {
 b[i]=b[i]*255/(fheight*fwidth);
     }

 for (i=0;i  {
fdata[i*fstep+j]=b[fdata[i*fstep+j]];
 }
 cvNamedWindow(“处理后图像“1);
 cvShowImage(“处理后图像“frame);

     //处理后图像的直方图显示
 for (i=0;i  {  
 for (m=0;m<=255;m++)
 {
 if (fdata[i*fstep+j]==m)
 {
 c[m]++;
 break;
 }
 
 }
 }

 chistogram=cvCreateImage(cvSize(256maxnum/100+1)fdepth 1 );
 chdata=(uchar *)chistogram->imageData;
 for (i=0;i  {     
 chdata[i*s+j]=255;
}
 for(i=0;i<256;i++)
 {
 for(j=(maxnum-1)/100;j>=(maxnum-1-c[i])/100;j--)
 {
 chdata[j*s+i]=0;
 }
}
 //直方图均衡化后图像显示
cvNamedWindow(“处理后图像直方图“1);
cvShowImage(“处理后图像直方图“chistogram);

 

cvWaitKey(0);
   cvDestroyWindow(“处理前图像“);
cvDestroyWindow(“处理后图像“);
    cvDestroyWindow(“处理前图像直方图“);
    cvDestroyWindow(“处理后图像直方图“);
    cvReleaseImage(&frame);
cvReleaseImage(&hframe);
cvReleaseImage(&histogram);
cvReleaseImage(&chistogram);



}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      82742  2010-03-23 19:39  直方图均衡化和直方图显示vc\homework1\coin.bmp

     文件      17530  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\enhancement.obj

     文件     172084  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\homework1.exe

     文件     185980  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\homework1.ilk

     文件    4127884  2010-04-10 16:37  直方图均衡化和直方图显示vc\homework1\Debug\homework1.pch

     文件     517120  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\homework1.pdb

     文件     173056  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\vc60.idb

     文件     110592  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\Debug\vc60.pdb

     文件        249  2010-04-07 16:30  直方图均衡化和直方图显示vc\homework1\enhancement.asp

     文件       2782  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\enhancement.cpp

     文件       4204  2010-04-07 16:30  直方图均衡化和直方图显示vc\homework1\homework1.dsp

     文件        541  2010-04-07 15:58  直方图均衡化和直方图显示vc\homework1\homework1.dsw

     文件      41984  2010-04-14 17:20  直方图均衡化和直方图显示vc\homework1\homework1.ncb

     文件      48640  2010-04-14 17:20  直方图均衡化和直方图显示vc\homework1\homework1.opt

     文件       1206  2010-04-13 21:44  直方图均衡化和直方图显示vc\homework1\homework1.plg

     文件        258  2010-04-21 20:46  直方图均衡化和直方图显示vc\homework1\说明.txt

     目录          0  2010-04-21 20:51  直方图均衡化和直方图显示vc\homework1\Debug

     目录          0  2010-04-21 20:51  直方图均衡化和直方图显示vc\homework1

     目录          0  2010-04-21 20:51  直方图均衡化和直方图显示vc

----------- ---------  ---------- -----  ----

              5486852                    19


评论

共有 条评论