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