python 深度学习裁剪图像样本框并调整小图宽高比

深度学习标注完后裁剪下来目标图像成为小图
依据指定尺寸,调整宽高比

#输入原始大图;要裁剪的图像x、y最小值和最大值
def cutpic(img,xmin,xmax,ymin,ymax):
    # Cropping an image
    h = ymax-ymin
    w = xmax-xmin
    #将图像的框稍稍放大一点,露出完整的目标图像
    ymin -= h * 0.1
    ymax += h * 0.1
    xmin -= w * 0.1
    xmax += w * 0.1
    if ymin <= 0:
        ymin = 0
    if xmin <= 0:
        xmin = 0
    if ymax >= img.shape[0]:
        ymax = img.shape[0]
    if xmax >= img.shape[1]:
        xmax = img.shape[1]
#调整宽高比为0.7
    if ((xmax - xmin) / (ymax - ymin) > 0.7):
        temp = ((xmax - xmin) / 0.7- (ymax - ymin)) / 2
        ymin -= temp
        ymax += temp
    if ((xmax - xmin) / (ymax - ymin) < 0.7):
        temp = ((ymax - ymin) * 0.7- (xmax - xmin)) / 2
        xmin -= temp
        xmax += temp
    if ymin <= 0:
        ymin = 0
    if xmin <= 0:
        xmin = 0
    if ymax >= img.shape[0]:
        ymax = img.shape[0]
    if xmax >= img.shape[1]:
        xmax = img.shape[1]
    #裁剪图像的语句
    cropped_image = img[int(ymin):int(ymax),int(xmin):int(xmax)]

    # Display cropped image
    # cv2.imshow("cropped", cropped_image)


    # cv2.waitKey(0)
    # cv2.destroyAllWindows()
    #返回裁剪后的图像
    return cropped_image

最后给一下调用指令并存图片
littlepc = cutpic(img,xmin,xmax,ymin,ymax)
cv2.imwrite("little_pic ", littlepc )

点赞 收藏 给个支持谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值