Hello Mat

 找回密码
 立即注册
查看: 3475|回复: 0

小波多尺度边缘检测

[复制链接]

1323

主题

1551

帖子

0

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22647
发表于 2017-5-4 00:09:15 | 显示全部楼层 |阅读模式
小波多尺度边缘检测:
  1. clc,clear,close all;clear all;
  2. warning off
  3. I = imread('lena.jpg');
  4. % I = imread('lion.jpg');
  5. if size(I,3)>1
  6.     I = rgb2gray(I);
  7. end
  8. h = [0.125,0.375,0.375,0.125];   % 滤波掩膜
  9. gx = [0.5,-0.5];   % 水平掩膜
  10. gy = [0.5;-0.5];   % 垂直掩膜

  11. imfilter_iter(:,:,:,1) = conv2(h,h,I,'same'); % 图像滤波
  12. dx(:,:,:,1) = conv2(I,gx,'same');             % X方向卷积
  13. dy(:,:,:,1) = conv2(I,gy,'same');             % Y方向卷积

  14. figure('color',[1,1,1])
  15. subplot(131),imshow(I,[]),title('original image')
  16. subplot(132),imshow(dx(:,:,:,1),[]),title('X方向卷积')
  17. subplot(133),imshow(dy(:,:,:,1),[]),title('Y方向卷积')

  18. imfilter_norm(:,:,:,1) = sqrt(dx(:,:,:,1).^2+dy(:,:,:,1).^2);     % 模
  19. % 阈值分割
  20. % threshold = graythresh(imfilter_norm(:,:,:,1));
  21. % imfilter_bw(:,:,:,1) = im2bw(imfilter_norm(:,:,:,1), threshold);
  22. imfilter_bw(:,:,:,1) = imfilter_norm(:,:,:,1) > 5;

  23. S = 3;   % 尺度
  24. for i=1:S
  25.     imfilter_iter(:,:,:,i+1) = conv2(h,h,imfilter_iter(:,:,:,i),'same');   % 图像滤波
  26.     dx(:,:,:,i+1) = conv2(imfilter_iter(:,:,:,i),gx,'same');               % X方向卷积
  27.     dy(:,:,:,i+1) = conv2(imfilter_iter(:,:,:,i),gy,'same');               % Y方向卷积
  28.     imfilter_norm(:,:,:,i+1) = sqrt(dx(:,:,:,i+1).^2+dy(:,:,:,i+1).^2);    % 模
  29.     % 阈值分割
  30.     %     threshold = graythresh(imfilter_norm(:,:,:,i+1));
  31.     %     imfilter_bw(:,:,:,i+1) = im2bw(imfilter_norm(:,:,:,i+1), threshold);
  32.     imfilter_bw(:,:,:,i+1) = imfilter_norm(:,:,:,i+1) > 5;
  33. end

  34. figure('color',[1,1,1])
  35. subplot(321),imshow(I,[]),title('original image')
  36. subplot(322),imshow(imfilter_norm(:,:,:,1),[]),title('小波多尺度边缘检测--滤波图像模')
  37. subplot(334),imshow(imfilter_norm(:,:,:,2),[]),title('小波多尺度边缘检测--S=1图像模')
  38. subplot(335),imshow(imfilter_norm(:,:,:,3),[]),title('小波多尺度边缘检测--S=2图像模')
  39. subplot(336),imshow(imfilter_norm(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像模')
  40. subplot(337),imshow(imfilter_bw(:,:,:,2),[]),title('小波多尺度边缘检测--S=1图像边缘')
  41. subplot(338),imshow(imfilter_bw(:,:,:,3),[]),title('小波多尺度边缘检测--S=2图像边缘')
  42. subplot(339),imshow(imfilter_bw(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像边缘')

  43. figure('color',[1,1,1])
  44. subplot(121),imshow(imfilter_norm(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像模')
  45. subplot(122),imshow(imfilter_bw(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像边缘')
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-11-22 23:22 , Processed in 0.225887 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表