Sobel détection de contours – matlab

bonjour dans le cadre de mes Devoirs. j'ai besoin de calculer et d'afficher le bord de l'ampleur de l'image et de la
de bord de la direction de l'image de l'image balls1.tif, à l'aide de Sobel détection de Bord.

Ne pas utiliser matlab de bord de la fonction. Vous pouvez utiliser conv2.
Affichage binaire bord de l'image (1 bord de pixel, 0 pas de bord) de forte pixels de contour (au-dessus du seuil).
Déterminer un seuil qui élimine le bal des ombres.

voici ma main.m

addpath(fullfile(pwd,'TOOLBOX'));
addpath(fullfile(pwd,'images'));

%Sobel Edge Detection 
Image = readImage('balls1.tif');
showImage(Image);
message = sprintf('Sobel Edge Detection');
sobelEdgeDetection(Image);
uiwait(msgbox(message,'Done', 'help'));
close all

voici mon SobeEdgeDetection.m

function [ output_args ] = SobelEdgeDetection( Image )

maskX = [-1 0 1 ; -2 0 2; -1 0 1];
maskY = [-1 -2 -1 ; 0 0 0 ; 1 2 1] ;

resX = conv2(Image, maskX);
resY = conv2(Image, maskY);

magnitude = sqrt(resX.^2 + resY.^2);
direction = atan(resY/resX);
thresh = magnitude < 101;
magnitude(thresh) = 0;
showImage(magnitude);

end

mes questions sont les suivantes:

1. i qu'est-ce que le sens ? et comment puis-je l'afficher?

2. est-il une meilleure façon d'obtenir un seuil afin d'éliminer le bal des ombres. j'ai utilisé de l'essai et de l'erreur....

Sobel détection de contours – matlab

ce sont mes entraîner, dans la mesure montrant l'ampleur:

Sobel détection de contours – matlab

la direction est la direction de gradient de l'image, il est orthogonal aux bords de l'objet. Vos images ne vous laissera pas pour éliminer les ombres: dans ce cas, vous perdrez certaines supérieure frontières.

OriginalL'auteur Gilad | 2013-01-16