深度学习图像扩增

水平翻转(标注翻转):
def random_horizontal_flip(image, bboxes):
    _, w, _ = image.shape
    # [::-1] 顺序相反操作
    # a = [1, 2, 3, 4, 5]
    # a[::-1]
    # Out[3]: [5, 4, 3, 2, 1]
    image = image[:, ::-1, :]
    bboxes[:, [0, 2]] = w - bboxes[:, [2, 0]]
    return image, bboxes
bbox = np.array([[ 48 240 195 371  14]])
image = np.array(cv2.imread("000001.jpg"))
image1, bboxes = random_horizontal_flip(image.copy(), bbox.copy())
cv2.namedWindow('0',0)
cv2.imshow('0',image1)
cv2.waitKey(0)

  

#随机裁剪
def random_crop(image, bboxes):
    h, w, _ = image.shape
    max_bbox = np.concatenate([np.min(bboxes[:, 0:2], axis=0), np.max(bboxes[:, 2:4], axis=0)], axis=-1)
    max_l_trans = max_bbox[0]
    max_u_trans = max_bbox[1]
    max_r_trans = w - max_bbox[2]
    max_d_trans = h - max_bbox[3]
    crop_xmin = max(0, int(max_bbox[0] - random.uniform(0, max_l_trans)))
    crop_ymin = max(0, int(max_bbox[1] - random.uniform(0, max_u_trans)))
    crop_xmax = max(w, int(max_bbox[2] + random.uniform(0, max_r_trans)))
    crop_ymax = max(h, int(max_bbox[3] + random.uniform(0, max_d_trans)))
    image = image[crop_ymin : crop_ymax, crop_xmin : crop_xmax]
    bboxes[:, [0, 2]] = bboxes[:, [0, 2]] - crop_xmin
    bboxes[:, [1, 3]] = bboxes[:, [1, 3]] - crop_ymin
    return image, bboxes

 

#随机选转
def random_translate(self, image, bboxes):
 
        if random.random() < 0.5:
            h, w, _ = image.shape
            max_bbox = np.concatenate([np.min(bboxes[:, 0:2], axis=0), np.max(bboxes[:, 2:4], axis=0)], axis=-1)
 
            max_l_trans = max_bbox[0]
            max_u_trans = max_bbox[1]
            max_r_trans = w - max_bbox[2]
            max_d_trans = h - max_bbox[3]
 
            tx = random.uniform(-(max_l_trans - 1), (max_r_trans - 1))
            ty = random.uniform(-(max_u_trans - 1), (max_d_trans - 1))
 
            M = np.array([[1, 0, tx], [0, 1, ty]])
            image = cv2.warpAffine(image, M, (w, h))
 
            bboxes[:, [0, 2]] = bboxes[:, [0, 2]] + tx
            bboxes[:, [1, 3]] = bboxes[:, [1, 3]] + ty
 
        return image, bboxes

  

 

posted @ 2020-01-08 15:56  奥布莱恩  阅读(433)  评论(0编辑  收藏  举报