1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
imageOriginale = imread('im1.jpg');
imageOriginale =double(imageOriginale)/255.0;
imageOriginale = imageOriginale(:,:,1);
s0 = [1 2 1; 0 0 0;-1 -2 -1];
H(:,:,1) = conv2 (imageOriginale, s0, 'same');
s90 = [1 0 -1; 2 0 -2; 1 0 -1];
H(:,:,2) = conv2 (imageOriginale, s90, 'same');
s45 = [0 1 2; -1 0 1;-2 -1 0];
H(:,:,3) = conv2 (imageOriginale, s45, 'same');
s135 = [2 1 0; 1 0 -1; 0 -1 -2];
H(:,:,4) = conv2 (imageOriginale, s135, 'same');
S = max(H,[],3);
% Tu considère la valeur absolue de ton Sobel (puisque tu ne t'intéresse qu'à l'intensité du contour et pas à la direction)
S = abs(S);
% Tu rétablis les valeurs de S entre 0 et 255 (en supposant que ton image orignale soit en uint8... sinon tu adaptes ;))
S2 = S - min(S(:));
S2 = S2 ./ max(S2(:)) .* 255;
% Tu soustrais cette matrice à ta matrice originale
resultat = imageOriginale - S2;
% Affichage du résultat
figure;
subplot(1,2,1);
imshow(imageOriginale);
title('Image Originale');
subplot(1,2,2);
imshow(resultat);
title('Contours Renforcés'); |