浅谈python图片处理Image和skimage的区别


Posted in Python onAugust 04, 2019

做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是高,宽, 通道

调用及输出:

浅谈python图片处理Image和skimage的区别

其实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 相关文章推荐
Python urlopen()函数 示例分享
Jun 12 Python
详解详解Python中writelines()方法的使用
May 25 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python爬虫辅助利器PyQuery模块的安装使用攻略
Apr 24 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
python 中xpath爬虫实例详解
Aug 26 Python
使用Python实现分别输出每个数组
Dec 06 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
使用Python发现隐藏的wifi
Mar 04 Python
python 爬取京东指定商品评论并进行情感分析
May 27 Python
Python面向对象之成员相关知识总结
Jun 24 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 #Python
python opencv 简单阈值算法的实现
Aug 04 #Python
Python pandas用法最全整理
Aug 04 #Python
python匿名函数用法实例分析
Aug 03 #Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 #Python
Python适配器模式代码实现解析
Aug 02 #Python
Python3网络爬虫开发实战之极验滑动验证码的识别
Aug 02 #Python
You might like
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
javascript loadScript异步加载脚本示例讲解
2013/11/14 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
2017/04/06 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[02:20]2014DOTA2西雅图邀请赛 MVP外卡赛首胜采访
2014/07/09 DOTA
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
python实现员工管理系统
2018/01/11 Python
django如何连接已存在数据的数据库
2018/08/14 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
J2EE中常用的名词进行解释
2015/11/09 面试题
作风年建设汇报材料
2014/08/14 职场文书
捐书倡议书
2014/08/29 职场文书
网络销售员岗位职责
2015/04/11 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
python中filter,map,reduce的作用
2022/06/10 Python