Borrar filtros
Borrar filtros

検出器のオブジェクト(複数)の座標の格納について

8 visualizaciones (últimos 30 días)
Sato
Sato el 2 de En. de 2020
Comentada: Sato el 3 de En. de 2020
matlabのbbox(矩形)で複数のオブジェクトを検知し、中心の座標を取りたいです。
その際に、bbox内では
>> bbox
bbox =
340 130 136 332
570 54 146 356
のように値が格納されると思います(N行4列)。
x=bbox(1,1);
y=bbox(2,1);
・・・
と行いたいですが、複数のオブジェクトで複数行値が格納されている場合はどのようにしたら良いでしょうか。
(試しにx=bbox(1),y=bbox(2),w=bbox(3),h=bbox(4)と行ってみたところ、340,570,130,54と縦に値を格納してしまいました...)
下のリンクの複数オブジェクト検知という感じのイメージになります。
よろしくお願いいたします。

Respuesta aceptada

Kenta
Kenta el 3 de En. de 2020
こんにちは、bboxes(1,:)などとすれば、上から1段目の、左から右までの値をすべて取ることができます。
下の例を見ると、各bboxがそれぞれ取得できることが見て取ることができます。
I=imread('onion.png');
I=imresize(I,3);
bboxes=[240 130 136 232
270 54 146 256
92 73 290 40
153 78 67 139];
figure;
for i=1:4
subplot(2,2,i)
annotation=sprintf('box%d',i);
imshow(insertObjectAnnotation(I, 'rectangle', bboxes(i,:), annotation,'LineWidth',8,'FontSize',30))
end
result.JPG
  3 comentarios
Kenta
Kenta el 3 de En. de 2020
size(bboxes,1)
で、bboxesの縦の数、つまり検出した物体の数を知ることができます。bboxのサイズで、かつ1番目の方向(つまり縦方向)と考えてください。
そのため、
for i=1:size(bboxes,1)
bboxes(i,1)
bboxes(i,2)
bboxes(i,3)
bboxes(i,4)
end
とすれば、すべての要素を確認できます。
Sato
Sato el 3 de En. de 2020
ご回答ありがとうございます。
for i=1:size(bboxes,1)
x= bboxes(i,1)
y= bboxes(i,2)
w= bboxes(i,3)
h= bboxes(i,4)
end
で試させて頂きます。
ご丁寧にありがとうございます。

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2019a

Community Treasure Hunt

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

Start Hunting!