Matlab程序运行时出现个错误Undefined function or method 'psnr' for input arguments of type 'uint8'.

Matlab程序运行时出现个错误Undefined function or method 'psnr' for input arguments of type 'uint8'.,第1张

这里有PSNR的程序,供参考

function psnr=PSNR(Img1,Img0)

%计算图像Img1对Img0的PSNR值

%输入参数

% Img1:给定图像 Img1

% Img0:参考图像

%图像大小必须一样

%输出参数

% psnr:PSNR

N3=size(Img1);

tmp=minus(uint8(Img1),uint8(Img0));

tmp=tmptmp;

MSE=sum(sum(tmp))/(N3(1)N3(2));

if(MSE~=0)

psnr=10log10(65025/MSE);

else

psnr=10000; %标记为无穷大

end

'uint8' 是8bit正整数。出错是说psnr不识别整数的输入。

你试试psnr(double(I),double(I1))

如果还不好使。

你的函数必须存在另外一个叫psnrm的文件里

函数可以写在函数里,写在脚本里的函数不好使。

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

就是数字图像处理后的评价参数(SNR)信噪比,MSE(均方差)与PSNR(峰值信噪比)下面是我写的,不知道对不!请高手指教!谢谢!

MSE:

x=imread('e:\image\houbmp');

x1=imread('e:\image\11bmp');

x=double(x);

x1=double(x1);

[m,n]=size(x);

for i=1:m;

for j=1:n;

a(i,j)=x(i,j)-x1(i,j);

end

end

b=0;

for i=1:m;

for j=1:n;

b=b+a(i,j);

end

end

c=b/(mn)

SNR:

clear all;

x=imread('e:\image\2bmp');

x1=imread('e:\image\hbmp');

x=double(x);

x1=double(x1);

for i=1:110;

for j=1:110;

a(i,j)=x(i,j)^2;%after filtering's single

b(i,j)=x(i,j)-x1(i,j);

end

end

d=0;

e=0;

for i=1:110;

for j=1:110;

d=d+a(i,j);

e=e+b(i,j)b(i,j);

end

end

f=log10(d/e);

g=10f

解析:

建议你去网上下载一个checkmark,matlab写的,里面有你需要的全部东东,还有一些更宝贵的代码

以上。

做过的老狼

以上就是关于Matlab程序运行时出现个错误Undefined function or method 'psnr' for input arguments of type 'uint8'.全部的内容,包括:Matlab程序运行时出现个错误Undefined function or method 'psnr' for input arguments of type 'uint8'.、我在用matlab编程计算图像峰值信噪比和均方差值得程序运行后 没有得到相关的计算结果 怎么回事、matlab数字图像处理中求MSE与PSNR SNR语句,请!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10210625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存