contournc.m
上传用户:l56789
上传日期:2022-02-25
资源大小:2422k
文件大小:1k
源码类别:

图形图像处理

开发平台:

Matlab

  1. % contournc.m
  2. % (abbreviation of contourlet Noise Covariance)
  3. % written by: Duncan Po
  4. % Date: January 14 /2004
  5. % Usage: nc = contournc(nv, dim, pyrfilter, dirfilter, nlev, imdim)
  6. % nc: noise variance in the contourlet domain
  7. % nv: white noise variance in the image domain
  8. % pyrfilter: pyramid filter for contourlet transform
  9. % dirfilter: directional filter for contourlet transform
  10. % nlev: partition scheme for contourlet transform
  11. % imdim: image dimension (length of a side, square image is assumed)
  12. % uses monte-carlo approach to determine the noise variance of image
  13. % domain white noise in contourlet domain
  14. function nc = contournc(nv, pyrfilter, dirfilter, nlev, imdim)
  15. numtrial = 200;
  16. for trial = 1:numtrial
  17.     
  18. noisepic = (255*sqrt(nv))*randn(imdim);
  19. %figure;
  20. %imshow(noisepic);
  21. noisecontour = pdfbdec(noisepic, pyrfilter, dirfilter, nlev);
  22. for scale = 2:length(noisecontour)
  23.     n = [];
  24.     for dir = 1:length(noisecontour{scale})
  25.        if trial == 1
  26.           nc{scale}{dir} = noisecontour{scale}{dir}...
  27.              .*noisecontour{scale}{dir}/numtrial;
  28.        else
  29.           nc{scale}{dir} = nc{scale}{dir} + noisecontour{scale}{dir}...
  30.              .*noisecontour{scale}{dir}/numtrial;
  31.        end;
  32.     end;
  33. end;
  34. end;
  35.