【发布时间】:2020-04-18 00:46:08
【问题描述】:
import cv2
import numpy as np
# load input image:
input = cv2.imread("image.png") #image.png size has 1.48MB & bit depth: 8
# scaling:
scaled_img = cv2.resize(input,None,fx=0.5,fy=0.5,)
cv2.imshow("Scaling-Linear Interpolation", scaled_img)
#saving the img:
cv2.imwrite("image_resize.png", scaled_img) # 1.66 MB & bit depth: 24
我想知道为什么原始图像的位深度会发生变化。并且还知道如何根据用户进行更改。
【问题讨论】:
-
image.png的颜色标准是什么?它是灰度图像吗?它是索引图像吗?您可以将图片添加到您的帖子中吗? -
不检查源图像,不可能给出一些详细的解释。但是,在编写 PNG 时,OpenCV 默认使用非常低的压缩级别(比不压缩高一级)。它也不支持编写调色板图像。
-
您的原始图像可能是调色板图像stackoverflow.com/a/52307690/2836621,并且OpenCV在您加载它们时将它们转换为BGR图像,但不支持将调色板图像写回磁盘,因此磁盘文件即使以像素为单位的图像尺寸更小,尺寸也会增加。使用
exiftool YourInputImage.png告诉您输入的图像是什么。
标签: python image opencv resize