Clear Filters
Clear Filters

imcrop a specific bounding box

8 views (last 30 days)
Oliver Ferenczi
Oliver Ferenczi on 24 Feb 2020
Answered: Josep Llobet on 24 Mar 2022
Hi, I am trying to write code that will crop around a specific bounding box on appdesigner. It currently works when there is only a single bounding box in the image. However when there are several it wouldn't know which box to crop around.
This is the current code.
bboxes = step(faceDetector, faceimage);
CroppedFaces = imcrop(app.Faces,bboxes);
Thank you
  1 Comment
Chaitanya Mallela
Chaitanya Mallela on 3 Mar 2020
if the faceDetector object has Bounding Box property, try to Label every Bounding Box and execute imcrop command in a loop whose max iteration value equals Number of Labels.

Sign in to comment.

Answers (1)

Josep Llobet
Josep Llobet on 24 Mar 2022
You can try the next code:
Obtain the image example
% Obtain image
krillin = imread("");
% Process it
krillin_grey = im2gray(krillin);
krillin_grey_imadj = imadjust(krillin_grey);
krillin_BW = imbinarize(krillin_grey_imadj);
krillin_BW_2 = imclearborder(~krillin_BW);
% Labels (not necessary)
% krillin_BW_2_bwlab = bwlabel(krillin_BW_2);
% unique(krillin_BW_2_bwlab(:))
% imshow(krillin_BW_2_bwlab, [])
% Obtain the three major objects
krillin_BW_2_largest = bwpropfilt(krillin_BW_2, "Area", 3, "largest");
Crop the Bounding Boxes
BB = regionprops(krillin_BW_2_largest,'BoundingBox'); %<--- rellevant
for every_BB = 1:length(BB)
krillin_BW_BB = imcrop(krillin, BB(every_BB).BoundingBox+[-1 -1 1 1]); %Es retalla la imatge basant-se amb el BoundingBox.
% change v'krillin' for v'krillin_BW_2_largest' for obtain the binary images of bounding box
From the image: you must obtain:


Find more on Develop Apps Using App Designer in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!