Replace specific rectangular regions with ones

6 ビュー (過去 30 日間)
Elysi Cochin
Elysi Cochin 2021 年 7 月 7 日
コメント済み: Elysi Cochin 2021 年 7 月 9 日
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 件のコメント
Ben McMahon
Ben McMahon 2021 年 7 月 7 日
編集済み: Ben McMahon 2021 年 7 月 7 日
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 2021 年 7 月 9 日
yes, thank you sir

サインインしてコメントする。

採用された回答

KSSV
KSSV 2021 年 7 月 7 日
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);

その他の回答 (0 件)

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by