📄 vbm3d.m
字号:
function [PSNR_FINAL_ESTIMATE, y_hat_wi] = VBM3D(Xnoisy, sigma, NumberOfFrames, dump_information, Xorig, bm3dProfile)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% VBM3D is a Matlab function for attenuation of additive white Gaussian % noise from grayscale videos. This algorithm reproduces the results from the article:%% [1] K. Dabov, A. Foi, and K. Egiazarian, "Video denoising by sparse 3D% transform-domain collaborative filtering," European Signal Processing% Conference (EUSIPCO-2007), September 2007. (accepted)%% INTERFACE:%% [PSNR, Xest] = VBM3D(Xnoisy, Sigma, NFrames, PrintInfo, Xorig)%% INPUTS:% 1) Xnoisy --> A filename of a noisy .avi video, e.g. Xnoisy = 'gstennisg20.avi'% OR% Xnoisy --> A 3D matrix of a noisy video in a (floating point data in range [0,1],% or in [0,255])% 2) Sigma --> Noise standard deviation (assumed range is [0,255], no matter what is% the input's range)%% 3) NFrames (optional paremter!) --> Number of frames to process. If set to 0 or % ommited, then process all frames (default: 0).%% 4) PrintInfo (optional paremter!) --> If non-zero, then print to screen and save % the denoised video in .AVI% format. (default: 1)%% 5) Xorig (optional paremter!) --> Original video's filename or 3D matrix % If provided, PSNR, ISNR will be computed.%% NOTE: If Xorig == Xnoisy, then artificial noise is added internally and the% obtained noisy video is denoised.%% OUTPUTS:% % 1) PSNR --> If Xorig is valid video, then this contains the PSNR of the% denoised one%% 1) Xest --> Final video estimate in a 3D matrix (intensities in range [0,1])%% *) If "PrintInfo" is non-zero, then save the denoised video in the current % MATLAB folder.%% USAGE EXAMPLES:%% 1) Denoise a noisy (clipped in [0,255] range) video sequence, e.g. % 'gsalesmang20.avi' corrupted with AWGN with std. dev. 20:% % Xest = VBM3D('gsalesmang20.avi', 20, 0, 1); % % 2) The same, but also print PSNR, ISNR numbers.% % Xest = VBM3D('gsalesmang20.avi', 20, 0, 1, 'gsalesman.avi');%% 3) Add artificial noise to a video, then denoise it (without % considering clipping in [0,255]):% % Xest = VBM3D('gsalesman.avi', 20, 0, 1, 'gsalesman.avi');% %% RESTRICTIONS:%% Since the video sequences are read into memory as 3D matrices,% there apply restrictions on the input video size, which are thus% proportional to the maximum memory allocatable by Matlab.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Copyright
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -