How to get a rectangular subimage from regionprops(Image,'BoundingBox') in Matlab?

后端 未结 2 2002
既然无缘
既然无缘 2020-12-29 01:02

I have some particles that I\'ve identified in a larger image, and need to parse into smaller images for each particle. I\'ve used the regionprops \'BoundingBox\' function,

相关标签:
2条回答
  • 2020-12-29 01:23

    According to the documentation of REGIONPROPS:

    BoundingBox is [ul_corner width], where:

    • ul_corner: is in the form [x y z ...] and specifies the upper-left corner of the bounding box

    • width: is in the form [x_width y_width ...] and specifies the width of the bounding box along each dimension

    Now you can use IMCROP functions as imcrop(I, rect) where:

    rect is a four-element position vector [xmin ymin width height] that specifies the size and position of the crop rectangle.

    Thus:

    s = regionprops(L, 'BoundingBox');
    
    subImage = imcrop(I, s(1).BoundingBox);
    imshow(subImage)
    
    0 讨论(0)
  • 2020-12-29 01:39

    The parameters returned by regionprops are [y,x,width,height] in matrix coordinates (see also "unexpected Matlab".

    Thus, to extract the rectangle, you write:

    subImage = I(round(s(1).BoundingBox(2):s(1).BoundingBox(2)+s(1).BoundingBox(4)),...
           round(s(1).BoundingBox(1):s(1).BoundingBox(1)+s(1).BoundingBox(3)));
    
    0 讨论(0)
提交回复
热议问题