BoundingBox显示信息的方式

时间:2016-04-20 03:50:59

标签: matlab

使用BoundinBox显示的信息的顺序是什么,我的意思是:{y,x,Δy,Δx}{x,y,Δx,Δy}

1 个答案:

答案 0 :(得分:0)

regionprops州的文档,'BoundingBox'

  

返回包含区域的最小矩形,(...),例如[ul_corner width]。   ul_corner[x y z ...]格式指定边界框的左上角。   width[x_width y_width ...]格式指定每个维度的边界框的宽度。 (...)

因此图像的BoundingBox格式为[x, y, Δx, Δy]。现在,重要的是要记住,矩阵是如何在MATLAB中编制索引的。例如:

>> x = [1, 2; 3, 4]
x =
     1     2
     3     4

>> x(1:2, 1)
ans =
     1
     3

>> x(1, 1:2)
ans =
     1     2

从这个例子可以清楚地看到,MATLAB使用列优先索引,即矩阵中的第一个维度是列( y轴),第二个维度是行( x轴)!

要使用BoundingBox提取图像的一部分,您需要记住正确执行此操作:

>> a = imread('circlesBrightDark.png');
>> bw = a < 100;
>> props = regionprops(bw,'BoundingBox');

>> bbox = props(2).BoundingBox
bbox =
  259.5000   79.5000   81.0000   81.0000

>> x = bbox(1);
>> y = bbox(2);
>> dx = bbox(3);
>> dy = bbox(4);

>> circle = a( y : y+dy , x : x+dx )

bw result

          bw                        circle