似乎在PIL
/scipy.misc
中实现的imresize
只适用于uint8图像
>>> import scipy.misc
>>> im = np.random.rand(100,200)
>>> print im.dtype
float64
>>> im2 = scipy.misc.imresize(im, 0.5)
>>> print im2.dtype
uint8
有办法解决这个问题吗?我想处理HDR图像,因此需要处理float64
或float32
图像。谢谢。
Tags:
感谢cgohlke的评论。下面是我发现的两个适用于浮点数图像的选项。
对于单通道图像:
im2 = scipy.ndimage.interpolation.zoom(im, 0.5)
对于三通道图像:
im2 = scipy.ndimage.interpolation.zoom(im, (0.5, 0.5, 1.0))
im2 = cv2.resize(im, (im.shape[1]/2, im.shape[0]/2))
这对单通道和三通道图像都有效。注意,需要在第二个参数中还原形状顺序。
您也可以在imresize函数中使用mode='F'选项
相关问题 更多 >
编程相关推荐