Source code for chainercv.transforms.bbox.resize_bbox

[docs]def resize_bbox(bbox, in_size, out_size): """Resize bounding boxes according to image resize. The bounding boxes are expected to be packed into a two dimensional tensor of shape :math:`(R, 4)`, where :math:`R` is the number of bounding boxes in the image. The second axis represents attributes of the bounding box. They are :math:`(y_{min}, x_{min}, y_{max}, x_{max})`, where the four attributes are coordinates of the top left and the bottom right vertices. Args: bbox (~numpy.ndarray): An array whose shape is :math:`(R, 4)`. :math:`R` is the number of bounding boxes. in_size (tuple): A tuple of length 2. The height and the width of the image before resized. out_size (tuple): A tuple of length 2. The height and the width of the image after resized. Returns: ~numpy.ndarray: Bounding boxes rescaled according to the given image shapes. """ bbox = bbox.copy() y_scale = float(out_size[0]) / in_size[0] x_scale = float(out_size[1]) / in_size[1] bbox[:, 0] = y_scale * bbox[:, 0] bbox[:, 2] = y_scale * bbox[:, 2] bbox[:, 1] = x_scale * bbox[:, 1] bbox[:, 3] = x_scale * bbox[:, 3] return bbox