關於matlab裡的psnr問題
1樓:網友
請問你相應的資料已經有了嗎?如果資料已經有了很好畫啊。
matlab專業知識:matlab中如何呼叫函式psnr
2樓:遺忘的海豚灣
%影象格式是bmp,如果不是則轎茄要加rgb2gray函式轉化。
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(['輸入資料的mse為:',num2str(msevalue)])
psnrvalue=255^2/msevalue;
psnrvalue=10*log10(psnrvalue);
以上是求psnr的程式,直接加在主函式後面就可以,或者新建一歲枝個m檔案來儲存之後呼叫。頭兩句直接讀入原影象和經過處理的影象,把影象資料矩陣存放在x1和閉雀察x2中~~例如x1=imread('');
求助matlab psnr 簡單問題
3樓:吱家出品
我覺得你可以先試著算mse,再用mse轉成psnr 檢視原帖》
matlab程式求psnr值
4樓:高手知道
我看主要是因為你的兩幅**選得不對。
必須是選擇24位顏色的**,就是rgb三個分量都有的那種。
如果本身不是的話就用畫圖工具另存為24位的bmp影象吧。
5樓:後來白狐
是不是**不是一樣大小的啊 比如都得是 512*512
跪求高手指教,怎麼呼叫psnr函式
6樓:匿名使用者
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(['輸入資料的mse為:',num2str(msevalue)])
psnrvalue=255^2/msevalue;
psnrvalue=10*log10(psnrvalue);
以上是求psnr的程式,直接加在主函式後面就可以,或者新建乙個m檔案來儲存之後呼叫。頭兩句直接讀入原影象和經過處理的影象,把影象資料矩陣存放在x1和x2中~~例如x1=imread('');
如何用matlab 編寫2-grey scale 影象的psnr
7樓:文遠長歌
假設2影象 i1, i2 大小為mxn畫素。
1. 先求 mse (mean squared error)mse = 1/(m*n) *sum(sum((i1-i2).^2));
2. psnr = 10*log10(maxi^2 / mse);
這裡maxi是指影象中畫素灰度最大的可能取值。比如對於8 bit的影象,maxi = 2^8-1 = 255.
matlab數字影象處理中求mse與psnr snr語句,請!
8樓:網友
以上。襪悶悉。
做過罩帶的老狼。
matlab程式執行時出現個錯誤undefined function or method 'psnr' for input arguments of type 'uint8'.
9樓:網友
這裡有psnr的程式,供參考。
function psnr=psnr(img1,img0)%計算影象img1對img0的psnr值。
輸入引數。 img1:給定影象 img1
img0:參考影象。
影象大小必須一樣。
輸出引數。 psnr:psnr
n3=size(img1);
tmp=minus(uint8(img1),uint8(img0));
tmp=tmp.*tmp;
mse=sum(sum(tmp))/n3(1)*n3(2));
if(mse~=0)
psnr=10*log10(65025/mse);
elsepsnr=10000; 標記為無窮大end
Matlab數字影象處理關於明暗調整的問題
直方圖均衡化試試,matlab中histeq函式可以實現一些效果。i imread tire.tif j histeq i imshow i figure,imshow j 這個其實比較簡單的。的亮度是根據灰度而定的。首先是讀取 然後儲存r g b值。將 轉換正灰度圖。調節灰度圖色數 根據加減值就可...
關於matlab的一些作業,matlab大作業
function main 一 要求寫出視窗執行過程及結果 1 利用matlab求函式f x x2 ex lnx的導數 不定積分和1到10區間的定積分及趨於1的極限。clc clear all close all syms x fx x 2 exp x log x dfx diff fx,x ifx...
matlab求 8的立方根,Matlab裡用的是什麼語言?
syms x x solve x 3 8 x 23 1 2 i 1 1 3 1 2 i matlab裡用的是什麼語言?我來說一下 matlab的語言正如三樓所說,是十分寬鬆的.matlab本身是由c語言編寫的,它主要關注的計算,運用,而不是程式設計,所以用matlab寫程式是十分快意的.只要學過其它...