我想用原始位深度保存我的 resize/scaling opencv 图像?
I want to save my resize/scaling opencv image with original bit depth?
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
我想知道为什么位深度与原始图像不同。也知道如何根据用户改变。
opencv imread 始终读取为 3 通道输入,因此它会为加载的灰度图像添加 2 个相同的通道。
您可以使用灰度或未更改标志加载为灰度,或cv2.cvtColor转换为灰度。
所以目前您正在将单通道 8 位图像文件加载为 3x8=24 位图像。保存为png后是一个24位的图片文件。
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
我想知道为什么位深度与原始图像不同。也知道如何根据用户改变。
opencv imread 始终读取为 3 通道输入,因此它会为加载的灰度图像添加 2 个相同的通道。
您可以使用灰度或未更改标志加载为灰度,或cv2.cvtColor转换为灰度。
所以目前您正在将单通道 8 位图像文件加载为 3x8=24 位图像。保存为png后是一个24位的图片文件。