python如何在不损失质量的情况下调整(收缩)图像大小
我想调整png图片476x402到439x371的大小,我使用了PIL(图像)或opencv的调整大小方法,但是,它会丢失一些锐利的效果。调整大小后,图片变得模糊。 如何使用python调整(收缩)图像的大小而不丢失清晰度python如何在不损失质量的情况下调整(收缩)图像大小,python,image,Python,Image,我想调整png图片476x402到439x371的大小,我使用了PIL(图像)或opencv的调整大小方法,但是,它会丢失一些锐利的效果。调整大小后,图片变得模糊。 如何使用python调整(收缩)图像的大小而不丢失清晰度 from skimage import transform, data, io from PIL import Image import os import cv2 infile = 'D:/files/script/org/test.png' outfile = 'D:/
from skimage import transform, data, io
from PIL import Image
import os
import cv2
infile = 'D:/files/script/org/test.png'
outfile = 'D:/files/script/out/test.png'
''' PIL'''
def fixed_size1(width, height):
im = Image.open(infile)
out = im.resize((width, height),Image.ANTIALIAS)
out.save(outfile)
''' open cv'''
def fixed_size2(width, height):
img_array = cv2.imread(infile)
new_array = cv2.resize(img_array, (width, height), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(outfile, new_array)
def fixed_size3(width, height):
img = io.imread(infile)
dst = transform.resize(img, (439, 371))
io.imsave(outfile, dst)
fixed_size2(371, 439)
如何将2000像素的图像打包到一个只能容纳1800像素的盒子中?你不能 将相同数量的信息(存储为源图像中的像素)放入较小的像素区域仅适用于
- 丢弃像素(即,丢弃单个值或裁剪不需要的图像)
- 将相邻像素混合成某种加权平均值,并用略微改变的439像素替换476像素
interpolation=cv2.INTER_CUBIC
,其他)调整像素值以合并/平均它们,这样就不会丢失太多信息
您可以尝试更改算法,也可以应用进一步的后处理(“锐化”)来再次丰富对比度
在存储图像时,某些格式会进行“有损”存储以最小化文件大小(JPG)。其他格式是无损的(PNG、TIFF、JPG2000等),如果选择有损图像格式,可能会进一步模糊图像
看