python图片处理Image和skimage的不同

原创 2016年03月27日 21:31:51

做cnn的难免要做大量的图片处理。由于接手项目时间不长,且是新项目,前段时间写代码都很赶,现在稍微总结(恩,总结是个好习惯)。

1,首先安装python-Image和python-skimage、python-matplotlib。

  简单代码:

import Image as img
import os
from matplotlib import pyplot as plot
from skimage import io,transform
import argparse

def show_data(data):
    fig = plot.figure()
    ax = fig.add_subplot(121)
    ax.imshow(data, cmap='gray')
    ax2 = fig.add_subplot(122)
    ax2.imshow(data)
    plot.show()
if __name__ == "__main__":
    parse = argparse.ArgumentParser()
    parse.add_argument('--picpath', help = "the picture' path")
    args = parse.parse_args()
    img_file1 = img.open(args.picpath)#Image读图片
    one_pixel = img_file1.getpixel((0,0))[0]
    print "picture's first pixe: ",one_pixel  
    print "the picture's size: ", img_file1.size#Image读出来的size是高宽
    show_data(img_file1)
    img_file2 = io.imread(args.picpath)#skimage读图片
    show_data(img_file2)
    print "picture's first pixel: ", img_file2[0][0][0]
    print "the picture's shape: ", img_file2.shape#skimage读出来的shape是高,宽, 通道

调用及输出:


其实Image读出来的是PIL什么的类型,而skimage.io读出来的数据是numpy格式的。如果想直接看Image和skimage读出来图片的区别,可以直接输出它们读图片以后的返回结果。

2.Image和skimage读图片:

img_file1 = img.open(args.picpath)
img_file2 = io.imread(args.picpath)


3.读图片后数据的大小:

print "the picture's size: ", img_file1.size
print "the picture's shape: ", img_file2.shape


4.得到像素:

one_pixel = img_file1.getpixel((0,0))[0]
img_file2[0][0][0]



分析:

1.从3的输出可以看出img读图片的大小是图片的(height,width);

skimage的是(height,width, channel)[这也是为什么caffe在单独测试时要要在代码中设置:transformer.set_transpose('data',(2,0,1)),因为caffe可以处理的图片的数据格式是(channel,height,width),所以要转换数据啊]

2.img读出来的图片获得某点像素用getpixel((h,w))可以直接返回这个点三个通道的像素值

  skimage读出来的图片可以直接img_file2[0][0][0]获得,但是一定记住它的格式,并不是你想的(channel,height,width)

 

关于matplotlib简单的画图请关注下篇~


版权声明:本文为博主原创文章,未经博主允许不得转载。

python的Image和skimage处理图片

一、import  Image img = Image.open(path)#打开图片 img.getpixel((height, width))#得到(height, width)处的像素值(可能是...
  • u010668907
  • u010668907
  • 2016年04月10日 17:28
  • 17508

OpenCV、Skimage、PIL图像处理的细节差异

上一篇博客中介绍了caffe实现多label输入,其中有一些图片处理的操作(训练验证数据),当时我选择了PIL库,但是在测试中用了caffe官网demo的代码,它使用了caffe的Python接口,而...
  • u013010889
  • u013010889
  • 2017年01月11日 20:28
  • 10100

skimage模块

可以用来做图像做处理的模块有很多,不过对于使用python不熟悉,或者刚使用python做图像处理的时候,经常不知道应该选择使用哪些模块。比如,scipy中misc和ndimage中都有相应的图像处理...
  • Ethan_Apple
  • Ethan_Apple
  • 2017年11月16日 17:27
  • 763

ubuntu&Win下python-skimage install

ubuntu下python-skimage安装 1 必须的依赖:   python-numpy   python-scipy   python-matplotlib   $sudo apt-get ...
  • dlphay
  • dlphay
  • 2017年04月15日 20:58
  • 5209

import skimage.io ImportError: No module named skimage.io

当我运行FAST-CNN下 /tools/demo.py时 出现了如下的错误,说我找不到skimage.io模块。 import skimage.io ImportError: No module...
  • zouyu1746430162
  • zouyu1746430162
  • 2016年11月29日 15:33
  • 16552

python-skimage

1. skimage.util crop pad random_noise regular_grid view_as_windows view_as_blcks 2. skimage.transf...
  • sau_lwy
  • sau_lwy
  • 2017年07月02日 21:08
  • 429

用 python skimage做图像处理

导言:由于经常需要处理图像,习惯了matlab那么好用的图像处理工具箱,搬到python后有点不知所措了。搜了下python图像处理方面的库,好多PIL的教程,但是无奈的是PIL和numpy等结合不好...
  • thesby
  • thesby
  • 2016年05月08日 00:15
  • 18764

python图像处理之skimage

转自:python数字图像处理(2):图像的读取、显示与保存 skimage提供了io模块,顾名思义,这个模块是用来图片输入输出操作的。为了方便练习,也提供一个data模块,里面嵌套了一些示例图片,...
  • TheLittleBee
  • TheLittleBee
  • 2017年12月11日 21:04
  • 245

python添加噪声

Python-图像加噪 高斯噪声 高斯噪声(Gaussian noise)是指它的概率密度函数服从高斯分布的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的...
  • weixin_38009585
  • weixin_38009585
  • 2018年01月13日 21:01
  • 130

【Python】使用skimage完成二值图像连通区域标记及属性提取

本文介绍了使用skimage完成二值图像连通区域标记及属性计算的过程,并给出了详细的文档。...
  • Jkwwwwwwwwww
  • Jkwwwwwwwwww
  • 2017年01月12日 22:35
  • 8451
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python图片处理Image和skimage的不同
举报原因:
原因补充:

(最多只允许输入30个字)