skimage
import skimage
from skimage import io, color
# 读取灰度图,能做到16bit无损
img = io.imread('CT-220s_681.tif') # 直接就是numpy类型,dtype根据图片格式决定,np默认float64格式
print(img.shape, type(img), img.dtype)
print(img)
# 读取彩色图,默认RGB
img = io.imread('0006.png')
print(img.shape, type(img), img.dtype)
print(img)
输出
(721, 1994) <class 'numpy.ndarray'> uint16
[[47532 46889 47658 ... 46906 46789 46942]
[48233 47433 47538 ... 47491 47502 47378]
[47926 46989 46765 ... 46272 46423 46601]
...
[47306 45753 46147 ... 47469 47149 47082]
[46289 46380 46739 ... 47196 46787 47083]
[46588 46007 46457 ... 46843 47372 47149]]
(2040, 1356, 3) <class 'numpy.ndarray'> uint8
[[[158 120 97]
...
[126 109 79]]]
# RGB转换为灰度图。自动转化到[0,1],float64
gray_img = color.rgb2gray(img)
print(gray_img.shape, type(gray_img), gray_img.dtype)
输出
(2040, 1356) <class 'numpy.ndarray'> float64