Img = imread('lena.jpg');
A = double(Img);
GSSImg(:,:,1) = 0.299 * A(:,:,1) + 0.587 * A(:,:,1) + 0.114 * A(:,:,1);
w = 9;d = 3;s = 4;
for n = 1:(1 + s)
C = GSSImg(:,:,n);
B = fspecial('gaussian',w,(d*2^((n/s))));
GSSImg(:,:,(n+1)) = imfilter(C,B);
Difval(:,:,n) = GSSImg(:,:,(n+1)) - GSSImg(:,:,n);
end
subplot(2,4,1);imshow(Img);title('原图像');
subplot(2,4,5);imshow(uint8(Difval(:,:,1)));title('第一层与亮度图像差值');
subplot(2,4,6);imshow(uint8(Difval(:,:,2)));title('第一层与第二层差值');
subplot(2,4,7);imshow(uint8(Difval(:,:,3)));title('第二层与第三层差值');
subplot(2,4,8);imshow(uint8(Difval(:,:,4)));title('第三层与第四层差值');