# How to get the value from Structure array ?

1 view (last 30 days)
Jenifer NG on 13 May 2022
Commented: Matt J on 13 May 2022
Dear Matlab experts,
I need some help from someone.
I want to get the location value from the structure array (stat). Then use them to crop image with the size is 64x64.
This is my step:
1. Detect the centroid of image
2. Use the value of centroid location and crop the original to many 64x64 image.( this step i stuck because i don't know how to get the
value of centroid location).
My code:
% Step 1 centroid detection
Ibw = im2bw(I);
stat = regionprops(Ibw,'centroid');
imshow(I); hold on;
for x = 1: numel(stat)
plot(stat(x).Centroid(1),stat(x).Centroid(2),'+',LineWidth=2);
end
hold off
%Step 2 crop image
I2 = imcrop(I,[??-32 ??-32 63 63])
This is the structure array value of centroid location.
This is what i want to do
Thanks
Han

Matt J on 13 May 2022
Edited: Matt J on 13 May 2022
Ibw = im2bw(I);
stat = regionprops(Ibw,'Image');
for i=1:numel(stat)
I=stat(i).Image;
I(end+1:64,end+1:64)=0;
s=regionprops(I,'Centroid');
I=imtranslate(I,32-s.Centroid);
if ~isequal(size(I),[64,64])
win = centerCropWindow2d(size(I),[64,64]);
I=imcrop(I,win);
end
stat(i).Image=I;
end
montage({stat.Image},'Back','w','Bor',5)
##### 1 CommentShowHide None
Jenifer NG on 13 May 2022
Edited: Jenifer NG on 13 May 2022
Thanks you so much.
I want to use the centroid location in this image to crop another image then save the cropped area to separate file.
Could you help me to modify this code?

### More Answers (1)

Matt J on 13 May 2022
I want to use the centroid location in this image to crop another image then save the cropped area to separate file.
Ibw = im2bw(I);
stat = regionprops(Ibw,'Centroid');
N=numel(stat);
for i=1:N
stat(i).BoundingBox=[stat(i).Centroid-32.5, 64,64];
end
And now you can extract the cropped subimages from an arbitrary image with the following, although I use the original image Ibw just for illustration.
subimages=arrayfun(@(s)imcrop(Ibw,s.BoundingBox), stat,'uni',0); %You can use a new image here
montage(subimages,'Back','w','Bor',5)
Matt J on 13 May 2022
Why is modification necessary?

### Categories

Find more on Large Files and Big Data in Help Center and File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!