小弟我给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的问题
现在我有一个扫描进去的图像,里边有1个数字是0107,我要改成0701,就是把1和7互换一下位置,请问如何修改,
谢谢。
...
-
求推荐:能分析视频的工具
其实要求还能再简单一点,就是只要能具备每帧每帧的查看功能的即可,譬如像微软的Movie Maker.谢谢。
-----...
-
如何画立体网络拓扑图?
假设有三层房子,用立体的方式展现网络布线情况。
------解决方案--------------------
我只是知道画图纸...
-
ps4 制作透明背景图片
步骤:新建一个图层 30px (w)* 30px (h),背景选择为透明。然后在四个角上分别选择四个像素的正方形,用白色填充,然后...
-
VirtualDub 不能用
如下:
Couldn't locate decompressor for format 'FPS1' (unknown)
VirtualDub requires a Video for Windows ...
-
PS怎么制作有透明通道的图片,保存为什么格式?
我做了一个黑色背景白色网格线的图片,怎么做透明通道,是白色网格线显示,而黑色背景不显...
-
做网页上的动态小图片用什么工具做呢
我是做网站的,不过现在还没开始做,负责人喊我做网页上的动态小图片,用什么工具做好呢,请各位指...
-
flash cs3 求帮忙
谁有序列号啊
给我几个
------解决方案--------------------
PFD800-81349-77248-49366
PFD800-82440-67...
-
PS的RGB通道该怎么理解?
从一个程序员的角度,一个像素的数据可以用RGBA表示,共32位。
PS的alpha通道可以类比像素数据的Alpha,
但是RGB通道该怎么理解呢?
--...
-
怎样修改jpg格式中的图片里的文字?
用什么办法更方便、快捷,并且效果过好呢?
------解决方案--------------------
要溯源就找原始...