Replace specific rectangular regions with ones

1 vue (au cours des 30 derniers jours)
Elysi Cochin
Elysi Cochin le 7 Juil 2021
Commenté : Elysi Cochin le 9 Juil 2021
I wanted to fill the rectangular positions in bbox (values attached in order - [x y width height]) with ones.
I tried the below code, but i dont get any white regions, what can be the reason?
mask = zeros(300,950);
load bbox
for i = length(bbox)
mask(bbox(i,1) : bbox(i,3) , bbox(i,2) : bbox(i,4)) = 1;
end
figure, imshow(mask);
  3 commentaires
Ben McMahon
Ben McMahon le 7 Juil 2021
Modifié(e) : Ben McMahon le 7 Juil 2021
Your loop is currently only setting the counter to the final value. To loop over all i in a set use the : notation. For example:
for i = 1:length(bbox)
mask( bbox(i,1) : bbox(i,3) , bbox(i,2) : bbox(i,4) ) = 1;
end
Elysi Cochin
Elysi Cochin le 9 Juil 2021
yes, thank you sir

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 7 Juil 2021
mask = zeros(30,95);
load bb.mat
bbox = round(bb) ;
for i = length(bbox)
row1 = ceil(bbox(2));
row2 = row1 + bbox(3);
column1 = ceil(bbox(1));
column2 = column1 + bbox(4);
mask(row1:row2,column1:column2) = 1;
end
figure, imshow(mask);

Plus de réponses (0)

Catégories

En savoir plus sur Feature Detection and Extraction dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by