1. 程式人生 > >【程式碼備份】原圖降取樣後進行NLM濾波

【程式碼備份】原圖降取樣後進行NLM濾波

檔案路徑:

濾波演算法main.m:

%% 測試函式
%NLM濾波及濾波與
clc,clear all,close all;
ima_ori=double(imread('F:\Users\cylan\Documents\MATLAB\TestImages\標準影象\lenna.bmp'));%原圖

ima=imresize(ima_ori,0.5,'nearest');
[wid,len,channels]=size(ima);
search=1;%搜尋窗半徑大小=4
patch=1;%匹配窗半徑大小
sigma=5;
rima=imresize(ima,2
,'bicubic');%原圖降取樣後的雙三次插值放大 % denoise fima=rima; if channels>2 for i=1:channels fima(:,:,i)=NLmeansfilter(rima(:,:,i),search,patch,sigma); end end % show results %subplot(1,3,1),imshow(uint8(ima)),title('original'); subplot(1,3,2),imshow(uint8(rima)),title('ori-bicubic
'); subplot(1,3,3),imshow(uint8(fima)),title('filtered');%NLM濾波後圖像 [PSNR_ori, MSE_ori] = psnr(rima, ima_ori); [PSNR_nlm, MSE_nlm] = psnr(fima, ima_ori);%將雙三次插值的結果

 


記錄:有些忘了,貌似是想對比濾波+插值插值+濾波?

 

[PSNR_ori, MSE_ori] = psnr(rima, ima_ori);
[PSNR_nlm, MSE_nlm] = psnr(fima, ima_ori);

分別計算的是單純降取樣後又插值的psnr,以及,插值後又進行了濾波的psnr。

可以發現,多了nlm濾波步驟後,psnr由29.1026->29.2503,提高了0.1477。