我给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
直方图均衡化和规定化都有,你自己看吧