2012-04-04 4 views
0

Comment puis-je détecter les bords d'une image sans utiliser la méthode 'edge', en utilisant uniquement des opérations mathématiques (matrix ou Derived ou div ou tout autre)? En effet, comment puis-je réécrire la fonction edge en utilisant l'algorithme Canny ou sobel ou un autre?find edge in image

Par exemple:

enter image description here

rectangle rose 256 * 256 rectangle noir 127 * 127

Réponse: Canny Tutorial

+0

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'. –

Répondre

2

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); 

enter image description here

+0

http://www.cs.ucf.edu/~mikel/Research/Edge_Detection.htm – 0x90

+0

non, sans utiliser la méthode'edge 'et seulement avec pluse, minuse, div, sqrt, ... – user1263390

+0

Vous avez toujours' J'ai expliqué pourquoi vous voulez que quelqu'un d'autre vous aide à faire cela quand il y a une version très bien implémentée, avec le code source disponible, dans MATLAB déjà. Pourquoi avez-vous besoin d'une nouvelle version de 'edge'? –