python skimage是什么呢?一起来看下吧:
scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。
Image读出来的是PIL的类型,而skimage.io读出来的数据是numpy格式的
import Image as img import os from matplotlib import pyplot as plot from skimage import io,transform #Image和skimage读图片 img_file1 = img.open('./CXR_png/MCUCXR_0042_0.png') img_file2 = io.imread('./CXR_png/MCUCXR_0042_0.png')
输出可以看出Img读图片的大小是图片的(width, height);而skimage的是(height,width, channel), [这也是为什么caffe在单独测试时要要在代码中设置:transformer.set_transpose('data',(2,0,1)),因为caffe可以处理的图片的数据格式是(channel,height,width),所以要转换数据]
#读图片后数据的大小: print "the picture's size: ", img_file1.size print "the picture's shape: ", img_file2.shape
the picture's size: (4892, 4020) the picture's shape: (4020, 4892)
#得到像素: print(img_file1.getpixel((500,1000)), img_file2[500][1000]) print(img_file1.getpixel((500,1000)), img_file2[1000][500]) print(img_file1.getpixel((1000,500)), img_file2[500][1000])
(0, 139) (0, 0) (139, 139)
如果我们想知道一些skimage图片信息
from skimage import io, data img = data.chelsea() io.imshow(img) print(type(img)) #显示类型 print(img.shape) #显示尺寸 print(img.shape[0]) #图片高度 print(img.shape[1]) #图片宽度 print(img.shape[2]) #图片通道数 print(img.size) #显示总像素个数 print(img.max()) #最大像素值 print(img.min()) #最小像素值 print(img.mean()) #像素平均值 print(img[0][0])#图像的像素值
skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,我们可以直接使用。
以上就是小编今天的分享,希望可以帮助到大家。