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

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

2012-12-25 
我给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

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

热点排行