2024-04-19 18:25:16 发布
网友
如果我有一个带有dtype=np.uint16的NumPy数组,如何将数据保存为uint16JPEG压缩?你知道吗
dtype=np.uint16
uint16
然后如何加载uint16JPEG压缩数据?你知道吗
枕头似乎不支持这一点,至少不支持将文件保存为jpg扩展名,请参见Pillow image file formats。你知道吗
jpg
无法以(纯旧)JPEG格式保存16位图像。只允许8位和12位(见ISO/IEC 10918-1)。您可以查看JPEG 2000,它也支持16位。你知道吗
Pillow has JPEG 2000 support。不幸的是,我无法保存16位RGB图像。我能做的就是16位灰度图像:
import numpy as np from PIL import Image image_array = np.uint16(np.random.rand(200, 200) * 65535) image_pil = Image.fromarray(image_array, 'I;16') image_pil.save('image_pil.jp2')
在GIMP中打开image_pil.jp2确实显示了一个16位的灰度图像。你知道吗
image_pil.jp2
既然已经有了NumPy数组,OpenCV就会浮现在脑海中,它的^{}方法也支持jpeg2000。使用OpenCV,我还可以保存一个16位RGB图像:
import cv2 import numpy as np image_array = np.uint16(np.random.rand(200, 200, 3) * 65535) cv2.imwrite('image_cv.jp2', image_array)
并且,在GIMP中打开image_cv.jp2显示16位RGB图像。你知道吗
image_cv.jp2
默认情况下,OpenCV禁用JPEG2000支持。必须显式设置环境变量OPENCV_IO_ENABLE_JASPER=1。你知道吗
OPENCV_IO_ENABLE_JASPER=1
或者,您可以选择(压缩)PNG。你知道吗
希望有帮助!你知道吗
无法以(纯旧)JPEG格式保存16位图像。只允许8位和12位(见ISO/IEC 10918-1)。您可以查看JPEG 2000,它也支持16位。你知道吗
Pillow has JPEG 2000 support。不幸的是,我无法保存16位RGB图像。我能做的就是16位灰度图像:
在GIMP中打开
image_pil.jp2
确实显示了一个16位的灰度图像。你知道吗既然已经有了NumPy数组,OpenCV就会浮现在脑海中,它的^{} 方法也支持jpeg2000。使用OpenCV,我还可以保存一个16位RGB图像:
并且,在GIMP中打开
image_cv.jp2
显示16位RGB图像。你知道吗默认情况下,OpenCV禁用JPEG2000支持。必须显式设置环境变量
OPENCV_IO_ENABLE_JASPER=1
。你知道吗或者,您可以选择(压缩)PNG。你知道吗
希望有帮助!你知道吗
相关问题 更多 >
编程相关推荐