您可以使用OpenCV,该图像已经使用NumPy数组。为了保存,有imwrite
函数:
通常,使用此功能只能保存8位单通道或3通道(具有“ BGR”通道顺序)图像,但以下情况除外:
- 对于PNG,JPEG 2000和TIFF格式,可以保存16位无符号(CV_16U)图像
可以以PFM,TIFF,OpenEXR和Radiance HDR格式保存- 32位浮点(CV_32F)图像;使用LogLuv高动态范围编码(每像素4个字节)保存3通道(CV_32FC3)TIFF图像
我做了以下小测试:
import cv2
import numpy as np
image_8 = np.uint8(np.random.rand(300,300,3) * 255)
image_16 = np.uint16(np.random.rand(300,3) * 65535)
image_32 = np.float32(np.random.rand(300,3))
cv2.imwrite('image_8.png',image_8)
cv2.imwrite('image_16.png',image_16)
cv2.imwrite('image_32.exr',image_32)
我可以使用GIMP打开所有图像,并且位深度都已正确设置。我无法使用GIMP编写和打开32位浮点TIFF,也无法解释为什么会这样。 ImwriteFlags
有几个,但是似乎都没有一个解决32位浮点数TIFF保存的问题。尽管如此,32位浮点EXR仍然有效。
希望有帮助!
本文链接:https://www.f2er.com/3097808.html