我想使用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))
[...]
我不知道是否还有其他参数可用于指定图像质量。
谢谢。
尝试使用更精确的插值技术,例如cv2.INTER_CUBIC
或cv2.INTER_LANCZOS64
。也尝试切换到scikit-image
。 Docs更好,lib的功能更多。它有6种插值模式可供选择:
您可以尝试使用imutils.resize
来调整图像的尺寸,同时保持宽高比。您可以根据所需的imutils.resize
或width
进行调整以放大或缩小。同样,在保存图像时,应使用无损图像格式,例如height
或.tiff
。这是一个简单的例子:
输入形状为.png
的图像
将图像缩小到250x250
100x100
250x250