如何使用matlab使用Object的边界框裁剪图像中检测到的对象

时间:2014-02-21 13:24:29

标签: image matlab image-processing crop matlab-cvst

您好。我是图像处理的新手。我想将检测到的图像区域提取为新图像。我使用caseCadeObjectDetector方法检测到脸部的眼部区域。现在我想知道,如何提取检测到的图像区域。这就是我做的。

i=imread('test.jpg');
Eyedetect =  vision.CascadeObjectDetector('RightEye','MergeThreshold',24);
bbox=step(Eyedetect,i);

我使用insertObjectAnnotation方法绘制边界框。它描绘了眼睛上方的线条。但我想把那只眼睛看作新形象。 bbox是1x4矩阵包含x , y, height, width。 有谁能够帮我?我正在使用MATLAB r2013a。

1 个答案:

答案 0 :(得分:4)

要使用格式为bbox的{​​{1}}提取子图像,您可以使用:

[x, y, height, width]

P.S。如果subImage = i(bbox(1):bbox(1)+bbox(3), bbox(2):bbox(2)+bbox(4), :); 的格式为bbox,则只需拨打imcrop

[x, y, width, height]