Python – 使用letter box方法缩放图片,防止图片缩放时失真
1 使用letter box方法缩放图片,防止图片缩放时失真
假如我们有一张1920x1080的图片想缩放到224x224,如果不进行任何处理,那么图片肯定会出现失真的问题。如果要把一张920x1080的图片缩放到224x224,我们需要首先保持原始图片的纵横比,然后在需要补齐的部分使用一个默认值填充,这里选择的是128。
具体的示例代码如下:
from PIL import Image
def resize_image_with_scale(image, size):
iw, ih = image.size
w, h = size
scale = min(w/iw, h/ih)
nw = int(iw*scale)
nh = int(ih*scale)
image = image.resize((nw, nh), Image.Resampling.BICUBIC)
new_image = Image.new('RGB', size, (128, 128, 128))
new_image.paste(image, ((w-nw)//2, (h-nh)//2))
return new_image
if __name__ == '__main__':
jpg_file_path = "C:\\Users\\xxx\\Desktop\\a.jpeg"
img = Image.open(jpg_file_path)
new_image = resize_image_with_scale(img, size=(224, 224))
new_image.save("b.jpg")
图片处理前后的效果如下:
从结果上看,在两边的区域padding了(128,128,128)的这种纯灰度的值。这样就可以保持图片既可以缩放也可以不失真了。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 使用letter box方法缩放图片,防止图片缩放时失真
原文链接:https://www.stubbornhuang.com/2645/
发布于:2023年06月05日 16:08:30
修改于:2023年07月17日 15:31:30
当前分类随机文章推荐
- Python - 普通函数/lambda匿名函数/类成员函数作为回调函数的用法 阅读2329次,点赞0次
- Python - 使用scikit-video库获取视频的旋转角度并使用opencv_python根据旋转角度对视频进行旋转复原 阅读3923次,点赞2次
- Python - 使用命令行调用ffmpeg修改视频帧率,将60FPS的视频修改为30FPS的视频,视频时间保持不变 阅读1072次,点赞0次
- Python - 运算符/、//和%的含义与区别 阅读700次,点赞0次
- Python - 判断一个字符串是否为json格式 阅读1257次,点赞0次
- Python3爬虫 - requests的请求响应状态码(requests.status_code) 阅读9654次,点赞4次
- Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线 阅读2870次,点赞0次
- Python3爬虫 - 下载反盗链图片的方式 阅读3055次,点赞1次
- Python - 使用Python+websockets时报错:AttributeError: module 'websockets' has no attribute 'serve' 阅读1872次,点赞0次
- Python - 不依赖第三方库对类对象进行json序列化与反序列化 阅读1618次,点赞0次
全站随机文章推荐
- C++ - websocket++库的可使用的所有事件总结 阅读426次,点赞0次
- Github - Github最简单的下载仓库中单个文件的方法 阅读1184次,点赞0次
- Python - 获取指定文件夹及其所有子文件夹、孙文件夹下指定文件类型的文件路径 阅读400次,点赞0次
- C++ - Yolo的letterbox图片预处理方法,缩放图片不失真 阅读306次,点赞0次
- 资源分享 - Natural Language Processing in Action 英文高清PDF下载 阅读937次,点赞0次
- FFmpeg - 通过h264编码的视频文件开始很清晰后面逐渐模糊 阅读4287次,点赞2次
- Python - 在子线程中使用OpenCV异步读取摄像头视频帧传递到主线程中进行处理 阅读2010次,点赞1次
- Python - 运行YOLOv5出现AttributeError: module 'torchvision' has no attribute 'ops' 阅读2663次,点赞1次
- failed to find an available destination > EOF 阅读19701次,点赞32次
- 深度学习 - 我的深度学习项目代码文件组织结构 阅读1835次,点赞3次
评论
169