码迷,mamicode.com
首页 > 编程语言 > 详细

Python opencv resize图片并保存原有的图像比例

时间:2019-12-18 10:48:26      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:ons   otto   需要   tuple   tom   矩形   highlight   min   keep   

参考链接:https://www.jianshu.com/p/3092835eab61

现有的图像是高瘦高瘦的,所以直接resize成矩形不合适。改变了整个结构。
所以采用的是先resize再padding的方式。
1.resize图片,先计算最长边的resize的比例,然后按照该比例resize。
2.计算四个边需要padding的像素宽度,然后padding
def resize_img_keep_ratio(img_name,target_size):
    img = cv2.imread(img_name)
    old_size= img.shape[0:2]
    #ratio = min(float(target_size)/(old_size))
    ratio = min(float(target_size[i])/(old_size[i]) for i in range(len(old_size)))
    new_size = tuple([int(i*ratio) for i in old_size])
    img = cv2.resize(img,(new_size[1], new_size[0]))
    pad_w = target_size[1] - new_size[1]
    pad_h = target_size[0] - new_size[0]
    top,bottom = pad_h//2, pad_h-(pad_h//2)
    left,right = pad_w//2, pad_w -(pad_w//2)
    img_new = cv2.copyMakeBorder(img,top,bottom,left,right,cv2.BORDER_CONSTANT,None,(0,0,0))
    return img_new
if__name__==‘main‘:
    img = ‘‘
    target_size=[448,112]
    resize_img_keep_ratio()

作者:涂山容容

链接:https://www.jianshu.com/p/3092835eab61
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Python opencv resize图片并保存原有的图像比例

标签:ons   otto   需要   tuple   tom   矩形   highlight   min   keep   

原文地址:https://www.cnblogs.com/wangyarui/p/12058445.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!