我想调整每个颜色通道中由uint16
值表示的图像大小。如果我使用imresize
它将数据转换为uint8
值。如何保存uint16
并调整图像大小?是否有可以在Python中使用超过8位颜色的imresize模拟器?
另外我想使用interp='lanczos'
调整大小的方法 - 不只是收缩数据,而是保存细节。是否有imresize
模拟可以在Python中使用8位以上的颜色?
我想调整每个颜色通道中由uint16
值表示的图像大小。如果我使用imresize
它将数据转换为uint8
值。如何保存uint16
并调整图像大小?是否有可以在Python中使用超过8位颜色的imresize模拟器?
另外我想使用interp='lanczos'
调整大小的方法 - 不只是收缩数据,而是保存细节。是否有imresize
模拟可以在Python中使用8位以上的颜色?
使用OpenCV resize
功能:OpenCV Documenation代替SkiPy imresize
。
解决方法:促进int32
,并设置模式参数告诉PIL尊重它:
scipy.misc.imresize(
my_data.astype(np.int32),
size=..., interp=..., mode='I'
).astype(np.uint16)
我尝试过了,这是行不通的。它在调整大小之前将“I”格式转换为8位。 – Dmitry
你是什么意思?结果的类型是'np.int32',而不是'np.uint8' – Eric
类型可以是'np.int32',但是这些值被转换为'np.uint8'(0..255)。 – Dmitry