How to select an area within a range around identified region?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Antonios Asiminas
le 29 Déc 2021
Commenté : Antonios Asiminas
le 31 Déc 2021
Hi everyone,
I am working with imaging data and after some thersholding I end up with a BW matrix so I can identify ROIs using regionprops and get a range of parameters for the ROI. So far so good. Now, I would like to quantify the signal within a set distance around each identified ROI (say 5 pixel wide perimeter)
Is there a simple way to do this, or I need to write something from scratch?
Any input is highly appreciated.
Thank you.
2 commentaires
Réponse acceptée
DGM
le 29 Déc 2021
Modifié(e) : DGM
le 29 Déc 2021
Maybe this is a start
radius = 5; % specify some radius
% an image and a mask of some sort
A = imread('eight.tif');
imshow(A)
objmask = bwareaopen(imfill(A<205,'holes'),100);
imshow(objmask)
% say we pick one object
L = bwlabel(objmask);
thisobj = L == 1;
imshow(thisobj)
% expand the mask and find difference
nearobj = bwdist(thisobj)<radius & ~thisobj;
imshow(nearobj)
This mask can be used to extract the image content in that region for further analysis.
pixelsnearobject = A(nearobj);
The exact needs may complicate matters. If the objects are close enough that the expanded masks intersect neighboring objects, is that still acceptable? If not, you may have to remove all object masks from the current expanded mask.
% example with larger mask radius and neighboring object exclusion
radius = 35;
nearobj = bwdist(thisobj)<radius & ~objmask;
imshow(nearobj)
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!