专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 图像工具使用

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

发布时间:2011-06-27 19:15:00 文章来源:www.iduyao.cn 采编人员:星星草
我给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

直方图均衡化和规定化都有,你自己看吧
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • 关于photoshop的有关问题

    关于photoshop的问题 现在我有一个扫描进去的图像,里边有1个数字是0107,我要改成0701,就是把1和7互换一下位置,请问如何修改, 谢谢。 ...

  • 求推荐:能分析视频的工具解决办法

    求推荐:能分析视频的工具 其实要求还能再简单一点,就是只要能具备每帧每帧的查看功能的即可,譬如像微软的Movie Maker.谢谢。 -----...

  • 怎么画立体网络拓扑图

    如何画立体网络拓扑图? 假设有三层房子,用立体的方式展现网络布线情况。 ------解决方案-------------------- 我只是知道画图纸...

  • ps4 制作透明背景图片解决方案

    ps4 制作透明背景图片 步骤:新建一个图层 30px (w)* 30px (h),背景选择为透明。然后在四个角上分别选择四个像素的正方形,用白色填充,然后...

  • VirtualDub 不能用解决方法

    VirtualDub 不能用 如下: Couldn't locate decompressor for format 'FPS1' (unknown) VirtualDub requires a Video for Windows ...

  • PS如何制作有透明通道的图片,保存为什么格式

    PS怎么制作有透明通道的图片,保存为什么格式? 我做了一个黑色背景白色网格线的图片,怎么做透明通道,是白色网格线显示,而黑色背景不显...

  • 做网页上的动态小图片用什么工具做呢,该怎么解决

    做网页上的动态小图片用什么工具做呢 我是做网站的,不过现在还没开始做,负责人喊我做网页上的动态小图片,用什么工具做好呢,请各位指...

  • flash cs3 求帮忙解决思路

    flash cs3 求帮忙 谁有序列号啊 给我几个 ------解决方案-------------------- PFD800-81349-77248-49366 PFD800-82440-67...

  • PS的RGB通道该如何理解

    PS的RGB通道该怎么理解? 从一个程序员的角度,一个像素的数据可以用RGBA表示,共32位。 PS的alpha通道可以类比像素数据的Alpha, 但是RGB通道该怎么理解呢? --...

  • 怎样修改jpg格式中的图片里的文字?该如何解决

    怎样修改jpg格式中的图片里的文字? 用什么办法更方便、快捷,并且效果过好呢? ------解决方案-------------------- 要溯源就找原始...

热门推荐: