十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
matlab的psnr(x,y)函數(shù):x應(yīng)為加了噪聲的圖像,y為原圖,輸出為峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了湘潭免費(fèi)建站歡迎大家使用!
'uint8' 是8bit正整數(shù)。出錯是說psnr不識別整數(shù)的輸入。
你試試psnr(double(I),double(I1))
如果還不好使。
你的函數(shù)必須存在另外一個叫psnr.m的文件里
函數(shù)可以寫在函數(shù)里,寫在腳本里的函數(shù)不好使。
x1=imread(original);
x2=imread(test);
x1=double(x1);
x2=double(x2);
[m,n]=size(x1);
[m2,n2]=size(x2);
if m2~=m||n2~=n;
error('圖像選擇錯誤');
end;
msevalue=0;
for i=1:m;
for j=1:n;
msevalue=msevalue+(x1(i,j)-x2(i,j))^2;
end;
end;
msevalue=msevalue/(m*n);
disp(['輸入數(shù)據(jù)的mse為:',num2str(msevalue)]);
psnrvalue=255^2/msevalue;
psnrvalue=10*log10(psnrvalue);
以上是求PSNR的程序,直接加在主函數(shù)后面就可以,或者新建一個m文件來保存之后調(diào)用。頭兩句直接讀入原圖像和經(jīng)過處理的圖像,把圖像數(shù)據(jù)矩陣存放在x1和x2中~~例如x1=imread('lena.bmp');
上面那個是做合并加法+時的轉(zhuǎn)換,返回的數(shù)據(jù)如果是整數(shù)序列,序列的加法就成了新增整型,并引起錯誤。而需要的是字符串的合并。
下面由于print打印函數(shù)默認(rèn)會對最終輸入的對象進(jìn)行repr()字符表示化處理,所以不需要再次轉(zhuǎn)換字符串
1、相關(guān)系數(shù)就用命令corrcoef
min(min(corrcoef(x1, x2))) 就是x1,x2之間的相關(guān)系數(shù)。
比如
t = (1:0.1:100)';
w = 2*pi;
x1=sin(w*t)+randn(size(t));
x2=cos(w*t)+randn(size(t));
x3=sin(w*t)+randn(size(t));
x1_x2 = min(min(corrcoef(x1, x2)))
x1_x3 = min(min(corrcoef(x1, x3)))
2、用corrcoef函數(shù)
設(shè)a1,b1,c1,d1 ,a2,b2,c2,d2 分別為f(x)和g(x)的系數(shù)
x=[a1,b1,c1,d1];
y=[a2,b2,c2,d2];
z=corrcoef(x,y)