How to get the value from Structure array ?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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:
- 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
I=imread("2_mask.png")
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
0 Kommentare
Akzeptierte Antwort
Matt J
am 13 Mai 2022
Bearbeitet: Matt J
am 13 Mai 2022
I=imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/996660/2_mask.png");
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 Kommentar
Weitere Antworten (1)
Matt J
am 13 Mai 2022
I want to use the centroid location in this image to crop another image then save the cropped area to separate file.
I=imread("https://www.mathworks.com/matlabcentral/answers/uploaded_files/996660/2_mask.png");
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)
5 Kommentare
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



