2017-09-21 61 views
0

我想调整每个颜色通道中由uint16值表示的图像大小。如果我使用imresize它将数据转换为uint8值。如何保存uint16并调整图像大小?是否有可以在Python中使用超过8位颜色的imresize模拟器?

另外我想使用interp='lanczos'调整大小的方法 - 不只是收缩数据,而是保存细节。是否有imresize模拟可以在Python中使用8位以上的颜色?

回答

0

解决方法:促进int32,并设置模式参数告诉PIL尊重它:

scipy.misc.imresize(
    my_data.astype(np.int32), 
    size=..., interp=..., mode='I' 
).astype(np.uint16) 
+0

我尝试过了,这是行不通的。它在调整大小之前将“I”格式转换为8位。 – Dmitry

+0

你是什么意思?结果的类型是'np.int32',而不是'np.uint8' – Eric

+1

类型可以是'np.int32',但是这些值被转换为'np.uint8'(0..255)。 – Dmitry

相关问题