首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

小弟我给100分 急那位大哥大姐帮小弟我用matlab翻译下

2012-04-05 
我给100分 急...........那位大哥大姐帮我用matlab翻译下下面的VC是进行直方图均衡化和规定化操作那位大哥

我给100分 急...........那位大哥大姐帮我用matlab翻译下
下面的VC   是进行直方图均衡化和规定化操作
那位大哥大姐帮我用matlab翻译下   谢谢~~~

翻译好   能发给我么?

            E_mail:       ctfysj@126.com

        QQ:308463776

void   main()
{
BMPFILE   bmpfile;
bmpfile.LoadBMPFILE   ( "实验图象1.bmp ");
if(!bmpfile.bIsOk)  
{
    printf( "Error   loading   image.\n ");
    return;
}
//   do   other   processing   with   the   imagedata
int   H[256];   //原始图象直方图
memset(H,0,sizeof(H));
int   S[256];   //变换映射-均衡直方图S
double   psnr;   //峰值信噪比
int   i;
int   f;
for(i=0;i <bmpfile.imageh*bmpfile.imagew;i++)
    H[*(bmpfile.imagedata+i)]++;
S[0]=H[0];
for(i=1;i <256;i++)
    S=S[i-1]+H;
for(i=0;i <256;i++)
    S=S*255/(bmpfile.imageh*bmpfile.imagew);
for(i=0;i <bmpfile.imageh*bmpfile.imagew;i++)
    *(bmpfile.imagedata+i)=S[*(bmpfile.imagedata+i)];
//原图象的直方图H
printf( "H:   ");
for(i=1;i <256;i++)
    printf( "%d   ",H);
printf( "\n ");
//原图象(直方图H)的均衡直方图
printf( "S:   ");
for(i=1;i <256;i++)
    printf( "%d   ",S);
printf( "\n ");
//均衡图象
bmpfile.SaveBMPFILE   ( "实验图象1-均衡图象.bmp ");
//PSNR值
psnr=0;
for(i=0;i <255;i++)
    psnr+=(S-i)*(S-i)*H;
psnr=10*log10(double(bmpfile.imageh)*bmpfile.imagew*255*255/psnr);
printf( "PSNR:   %f\n ",psnr);
//目标直方图G的均衡直方图
int   G[256];   //规定直方图
int   GS[256];   //规定直方图的均衡直方图
for(i=0;i <=127;i++)
    G=i;
for(i=128;i <=255;i++)
    G=(255-i);
GS[0]=G[0];
for(i=1;i <256;i++)
    GS=GS[i-1]+G;
f=GS[255]/255+1;
for(i=0;i <256;i++)
    GS/=f;
printf( "GS:   ");
for(i=1;i <256;i++)
    printf( "%d   ",GS);
printf( "\n ");
//最终增强图象
int   i2;
int   minNumber;
int   SG[256];   //从原图象的均衡图象到最终增强图象的映射
memset(SG,0,sizeof(SG));
for(i=0;i <256;i++)
{
    minNumber=255;
    for(i2=0;i2 <256;i2++)
        if(abs(S-GS[i2]) <minNumber)
        {
            minNumber=abs(S-GS[i2]);
            SG[S]=i2;
        }
}
for(i=0;i <bmpfile.imageh*bmpfile.imagew;i++)
    *(bmpfile.imagedata+i)=SG[*(bmpfile.imagedata+i)];
bmpfile.SaveBMPFILE   ( "实验图象1-最终增强图象.bmp ");
//最终增强图象的直方图GR   R=real
int   GR[256];
memset(GR,0,sizeof(GR));
for(i=1;i <256;i++)
    GR[SG[S]]+=H;
printf( "GR:   ");
for(i=1;i <256;i++)
    printf( "%d   ",GR);
printf( "\n ");
//最终增强图象的PSNR值
psnr=0;
for(i=0;i <255;i++)
    psnr+=(SG[S]-i)*(SG[S]-i)*GR;
psnr=10*log10(double(bmpfile.imageh)*bmpfile.imagew*255*255/psnr);
printf( "PSNR   of   the   destination   image:   %f\n ",psnr);


[解决办法]


http://ctfysj.blog.hexun.com/8726749_d.html

直方图均衡化和规定化都有,你自己看吧

热点排行