imresize
/ PIL
中实施的scipy.misc
似乎仅适用于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
图像。感谢。
答案 0 :(得分:11)
感谢cgohlke的评论。以下是我发现的两种替代方案,适用于浮点数图像。
对于单通道图片:im2 = scipy.ndimage.interpolation.zoom(im, 0.5)
对于3通道图像:im2 = scipy.ndimage.interpolation.zoom(im, (0.5, 0.5, 1.0))
im2 = cv2.resize(im, (im.shape[1]/2, im.shape[0]/2))
这适用于单通道和3通道图像。请注意,需要在第二个参数中恢复形状顺序。
答案 1 :(得分:1)
你也可以使用模式=' F' imresize功能中的选项
imresize(image, factor, mode='F')