浅谈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使用cookielib库示例分享
Mar 03 Python
python实现在windows服务中新建进程的方法
Jun 30 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
利用python求积分的实例
Jul 03 Python
python内置函数sorted()用法深入分析
Oct 08 Python
python zip()函数使用方法解析
Oct 31 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 29 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
Python中tkinter的用户登录管理的实现
Apr 22 Python
pytorch查看网络参数显存占用量等操作
May 12 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
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php中的依赖注入实例详解
2019/08/14 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
EJB的几种类型
2012/08/15 面试题
高级Java程序员面试要点
2013/08/02 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
学生学习总结的自我评价
2013/10/22 职场文书
促销活动总结怎么写
2014/06/25 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
班主任寄语2016
2015/12/04 职场文书
2016国培学习心得体会
2016/01/08 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书
详解Nginx 工作原理
2021/03/31 Servers
Python爬虫基础讲解之请求
2021/05/13 Python
Python实战之实现简易的学生选课系统
2021/05/25 Python
解析MySQL binlog
2021/06/11 MySQL