基于小波变换模极大的多尺度图像边缘检测matlab源代码.txt
上传用户:cellphone4
上传日期:2010-03-06
资源大小:1k
文件大小:1k
源码类别:

波变换

开发平台:

Matlab

  1. clear all;
  2. load wbarb;
  3. I = ind2gray(X,map);imshow(I);
  4. I1 = imadjust(I,stretchlim(I),[0,1]);figure;imshow(I1);
  5. [N,M] = size(I);
  6. h = [0.125,0.375,0.375,0.125];
  7. g = [0.5,-0.5];
  8. delta = [1,0,0];
  9. J = 3;
  10. a(1:N,1:M,1,1:J+1) = 0;
  11. dx(1:N,1:M,1,1:J+1) = 0;
  12. dy(1:N,1:M,1,1:J+1) = 0;
  13. d(1:N,1:M,1,1:J+1) = 0;
  14. a(:,:,1,1) = conv2(h,h,I,'same');
  15. dx(:,:,1,1) = conv2(delta,g,I,'same');
  16. dy(:,:,1,1) = conv2(g,delta,I,'same');
  17. x = dx(:,:,1,1);
  18. y = dy(:,:,1,1);
  19. d(:,:,1,1) = sqrt(x.^2+y.^2);
  20. I1 = imadjust(d(:,:,1,1),stretchlim(d(:,:,1,1)),[0 1]);figure;imshow(I1);
  21. lh = length(h);
  22. lg = length(g);
  23. for j = 1:J+1
  24.   lhj = 2^j*(lh-1)+1;
  25.   lgj = 2^j*(lg-1)+1;
  26.   hj(1:lhj)=0;
  27.   gj(1:lgj)=0;
  28.   for n = 1:lh
  29.     hj(2^j*(n-1)+1)=h(n);
  30.   end
  31.   for n = 1:lg
  32.     gj(2^j*(n-1)+1)=g(n);
  33.   end
  34.   
  35.   a(:,:,1,j+1) = conv2(hj,hj,a(:,:,1,j),'same');
  36.   dx(:,:,1,j+1) = conv2(delta,gj,a(:,:,1,j),'same');
  37.   dy(:,:,1,j+1) = conv2(gj,delta,a(:,:,1,j),'same');
  38.   x = dx(:,:,1,j+1);
  39.   y = dy(:,:,1,j+1);
  40.   dj(:,:,1,j+1) = sqrt(x.^2+y.^2);
  41.   I1 = imadjust(dj(:,:,1,j+1),stretchlim(dj(:,:,1,j+1)),[0 1]);figure;imshow(I1);
  42. end