Halcom 发表于 2017-5-4 00:09:15

小波多尺度边缘检测

小波多尺度边缘检测:
clc,clear,close all;clear all;
warning off
I = imread('lena.jpg');
% I = imread('lion.jpg');
if size(I,3)>1
    I = rgb2gray(I);
end
h = ;   % 滤波掩膜
gx = ;   % 水平掩膜
gy = ;   % 垂直掩膜

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

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

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

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

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

figure('color',)
subplot(121),imshow(imfilter_norm(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像模')
subplot(122),imshow(imfilter_bw(:,:,:,4),[]),title('小波多尺度边缘检测--S=3图像边缘')


页: [1]
查看完整版本: 小波多尺度边缘检测