使用 scikit-image 将整数图像转换为浮点图像时,我遇到了某种问题。
这是一个示例(图像是 2 像素图像):
from numpy import array,uint8;
import skimage;
rgb = array([array([[0,0,0],[0,0,5]])])
i1 = skimage.img_as_float(rgb)#rgb.dtype ->dtype('int32')
i2 = skimage.img_as_float(rgb.astype(uint8))
i3 = skimage.img_as_float(rgb.astype(float))
print i1[0,1,:]
print i2[0,1,:]
print i3[0,1,:]
我期待这个:
[ 0. 0. 5.]
[ 0. 0. 5.]
[ 0. 0. 5.]
但我得到了这个:
[ 2.32830644e-10 2.32830644e-10 2.56113708e-09]
[ 0. 0. 0.01960784]
[ 0. 0. 5.]
从 to 丢失精度是正常的float
,int
但是在这里我在从 to 传递int
到float
using时丢失了真实信息img_as_float
。我在GitHub 上阅读代码时没有发现任何东西...
为什么这可能?