[使用Opencv Python调整图像大小并保持质量

问题描述 投票:1回答:2

我想使用OpenCV python库调整图像大小。它可以工作,但是图像质量很差。

我必须说,我想将这些图像用于照片共享网站,因此质量是必须的。

这里是我目前的代码:

[...]

_image = image
height, width, channels = _image.shape
target_height = 1000
scale = height/target_height
_image = cv2.resize(image, (int(width/scale), int(height/scale)), interpolation = cv2.INTER_AREA)
cv2.imwrite(local_output_temp_file,image, (cv2.IMWRITE_JPEG_QUALITY, 100))
[...]

我不知道是否还有其他参数可用于指定图像质量。

谢谢。

python image opencv image-processing image-resizing
2个回答
0
投票

尝试使用更精确的插值技术,例如cv2.INTER_CUBICcv2.INTER_LANCZOS64。也尝试切换到scikit-image。 Docs更好,lib的功能更多。它有6种插值模式可供选择:

  • 0:最近邻居
  • 1:双线性(默认)
  • 2:双二次方
  • 3:双立方
  • 4:二次方
  • 5:双五次

0
投票

您可以尝试使用imutils.resize来调整图像的尺寸,同时保持宽高比。您可以根据所需的imutils.resizewidth进行调整以放大或缩小。同样,在保存图像时,应使用无损图像格式,例如height.tiff。这是一个简单的例子:

输入形状为.png的图像

将图像缩小到250x250

100x100

将图像恢复为enter image description here

250x250

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.