声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 885|回复: 4

[图像处理] 求信噪比的程序哪里出错了?

[复制链接]
发表于 2008-7-1 10:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
I= imread('apple-huai.bmp');
J = rgb2gray(I);
double  temp1=0.0;double  temp2=0.0;    %matlab不用特意声明double
  for i=0:m     %matlab下标从1开始
    forj=0:n
    {    %matlab循环不用{}
          temp1==temp1+255*255;  
temp2==temp2+[OldImage[j]-NewImage[j]]*[OldImage[j]-NewImage[j]];  %matlab[]表示取矩阵元素
    }  
  }  
  double  SNR=temp1*ROW*COL/Temp2;
  
  PSNR=10*log10(SNR);//PSNR即为峰值信噪比
??? temp2==temp2+[OldImage[j]-NewImage[j]]*[OldImage[j]-NewImage[j]];
                          |
Error: Missing operator, comma, semicolon, or white space.

一调试就出现这种错误怎么回事??



[ 本帖最后由 sigma665 于 2008-7-1 14:18 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-7-1 12:43 | 显示全部楼层
:@L
楼主用的是matlab还是c++啊?是新版本的新功能么?看起来很惊人啊。

如果楼主以前没有接触过matlab的话,建议找本基础的书看看。

评分

1

查看全部评分

发表于 2008-7-2 23:42 | 显示全部楼层
temp1==temp1+255*255;  
这个算干什么的 ??
C代码描述如下:
mse = 0.0;
for( y = 0; y < c;  y++ )
for( x = 0; x < r;  x++ )
{
     temp = (signed short)map1[y][x]-(signed short)map2[y][x];
     mse += (double)temp*temp;
}
mse = mse / (1.0*r*c);
psnr = 10 * log10(255.0*255.0/mse);

评分

1

查看全部评分

 楼主| 发表于 2008-7-3 17:09 | 显示全部楼层
这是matlab语言呀,求的是255的平方!
发表于 2008-7-4 11:00 | 显示全部楼层
楼主,你的matlab语言咋会是这样子的呢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 01:17 , Processed in 0.073663 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表