imils in PIL/scipy.misc仅适用于uint8图像?任何替代品?

Yin*_*ong 5 python numpy scipy python-imaging-library pillow

似乎imresizePIL/ 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
Run Code Online (Sandbox Code Playgroud)

有没有办法解决?我想处理HDR图像,因此需要处理float64float32图像.谢谢.

Yin*_*ong 12

感谢cgohlke的评论.以下是我发现的两种替代方案,适用于浮点数图像.

  1. 使用scipy.ndimage.interpolation.zoom

对于单通道图像: im2 = scipy.ndimage.interpolation.zoom(im, 0.5)

对于3通道图像: im2 = scipy.ndimage.interpolation.zoom(im, (0.5, 0.5, 1.0))

  1. 使用OpenCV.

im2 = cv2.resize(im, (im.shape[1]/2, im.shape[0]/2))

这适用于单通道和3通道图像.请注意,需要在第二个参数中恢复形状顺序.