How to select an area within a range around identified region?

조회 수: 2 (최근 30일)
Antonios Asiminas
Antonios Asiminas 2021년 12월 29일
댓글: Antonios Asiminas 2021년 12월 31일
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
KSSV
KSSV 2021년 12월 29일
Pictorial example will help us to help you.
Antonios Asiminas
Antonios Asiminas 2021년 12월 31일
Thank you for the super fast response and apologies for the delayed response. Here is a small piece of an image I am analysing. The yellow are the identified ROIs (true islands in a logical matrix). What I would like to do is selected the pixels that form an area around each identified ROI (roughly drawn by hand in light blue). The input parameter will be pixel distance. DGM looks likes they have provided a possible solution. If you have any other suggestions, that would be very appreciated.
Thank you!

댓글을 달려면 로그인하십시오.

채택된 답변

DGM
DGM 2021년 12월 29일
편집: DGM 2021년 12월 29일
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)

추가 답변 (0개)

제품


릴리스

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by