Find n closest nonzero pixels for every nonzero pixel in an image
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I have the coordinates of every nonzero pixel within an image (see file: pixel_coords.mat & image: tripod_branchpoints.png). Using this information, I need to find the 10 closest nonzero pixels (indexed with their correponding distances to the central pixel) for every nonzero pixel within the image. Next, of these 10 closest nonzero pixels, I need to identify the 3 nonzero pixels that are within 120 degress (+/- 5 degrees) of the other 2 in this group. I also need to create a plot for these results, where each pixel has connections to these 3 points with distances shown (see attached images: nonzero_pixels.png & nonzero_pixels_example.png). Thanks in advance for your help!
0 commentaires
Réponses (1)
Matt J
le 12 Juin 2019
Modifié(e) : Matt J
le 12 Juin 2019
Using this information, I need to find the 10 closest nonzero pixels (indexed with their correponding distances to the central pixel)
Pretty straightforward using pdist2, if you have the Statistics Toolbox,
[D,I] = pdist2(xy,xy,'squaredeuclidean','Smallest',10)
I don't know what you mean by "the 3 nonzero pixels that are within 120 degress (+/- 5 degrees) of the other 2 in this group", but that is surely something you would compute by looping through the columns of D and I.
4 commentaires
Image Analyst
le 13 Juin 2019
Why find the 10 closest first, and then the 3 at 120 degrees? Is it not always the case where the 3 closest area also the ones at 120 degrees? If not, please direct me to a counter example where that is not the case.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!