做cnn的难免要做大量的图片处理。由于接手项目时间不长,且是新项目,前段时间写代码都很赶,现在稍微总结(恩,总结是个好习惯)。
首先安装python-Image和python-skimage、python-matplotlib。
简单例子
1 | import Image as img |
调用及输出:
Image读出来的是PIL什么的类型,
skimage.io读出来的数据是numpy的格式。
想看Image和skimage读出来图片的区别,可以直接输出它们读图片以后的返回结果。
Image和skimage读图片
1 | img_file1 = img.open(args.picpath) |
读图片后数据的大小
1 | print "the picture's size: ", img_file1.size |
从输出可以看出
img读图片的大小是图片的(height,width);
skimage的是(height,width, channel)
[这也是为什么caffe在单独测试时要要在代码中设置:transformer.set_transpose (‘data’, ( 2, 0, 1)),因为caffe可以处理的图片的数据格式是(channel,height,width),所以要转换数据啊]
得到像素
1 | one_pixel = img_file1.getpixel((0,0))[0] |
img读出来的图片获得某点像素用getpixel((h,w))可以直接返回这个点三个通道的像素值
skimage读出来的图片直接img_file2[0][0][0]获得某点某通道像素值,但是一定记住它的格式,并不是你想的(channel,height,width)
关于matplotlib简单的画图请关注下篇~