Detecting 8 connected neighborhood of a object in image
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello
I need to find robust method for detecting the 8-connected neighbor of a rectangle-like object in an image.
I was considering something like dilation on the image but this does not seems to detect all the adjacent pixels in every case (considering change of shape) so know I am looking for another approach.
If you have any idea please let me know !
Regards
0 commentaires
Réponses (2)
Matt J
le 1 Mar 2013
Modifié(e) : Matt J
le 1 Mar 2013
You mean you have a binary image and you want to detect pixels with 8 neighbours that are "1"? If so,
kernel=[1 1 1; 1 0 1; 1 1 1]/8;
idx = conv(image,kernel,'same')>=.998; %.998 is a tolerance close to 1
and then if you want to, you can convert idx to subscript indices
[I,J]=find(idx);
Image Analyst
le 1 Mar 2013
Dmitris:
This is done with bwhitmiss() in the Image Processing Toolbox. Go here to Steve's blog to see examples: http://blogs.mathworks.com/steve/2011/07/08/binary-image-hit-miss-operator/. You just need to look at 4 cases, where the center pixel is true and a single corner is true. All of the other possible 252 cases will be 4 connected or not connected at all.
0 commentaires
Voir également
Catégories
En savoir plus sur Image Segmentation and Analysis dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!