Vous déclarez que vous souhaitez utiliser Canny, Sobel ou un autre algorithme. Ceux-ci peuvent tous deux être utilisés en bordure. Essayez par exemple:
BW = edge(I,'canny');
où I est votre matrice d'image. Si vous êtes intéressé à savoir comment edge
œuvres, type
edit edge
dans la fenêtre de votre commande. Vous verrez ensuite la propre implémentation de MATLAB.
Vous voudrez peut-être réimplémenter edge
pour avoir une bonne compréhension du fonctionnement des algorithmes de traitement d'image. Si oui, je vous diriger vers les sources suivantes:
Pour votre exemple spécifique avec les rectangles, il est tout à fait possible d'utiliser edge
pour trouver les bords. Le truc que vous avez à faire est de convertir l'image rgb en une échelle de gris, en utilisant rgb2gray
. Essayez par exemple:
rgb_image = imread('iarLe.png');
gray_image = rgb2gray(rgb_image);
edge_image = edge(gray_image);
imshow(edge_image);
Pourquoi voulez-vous récrire lorsqu'une fonction parfaitement utilisable existe déjà? Souhaitez-vous personnaliser 'edge' d'une manière ou d'une autre? Vous pouvez utiliser les algorithmes canny et sobel avec 'edge'. –