浅谈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抓取网页图片并放到指定文件夹
Apr 24 Python
微信跳一跳游戏python脚本
Apr 01 Python
Sanic框架蓝图用法实例分析
Jul 17 Python
python实现简单多人聊天室
Dec 11 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
python opencv实现图像边缘检测
Apr 29 Python
Python登录系统界面实现详解
Jun 25 Python
python word转pdf代码实例
Aug 16 Python
通过实例了解Python str()和repr()的区别
Jan 17 Python
python字典的值可以修改吗
Jun 29 Python
python中的yield from语法快速学习
Nov 06 Python
Django web自定义通用权限控制实现方法
Nov 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
php chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
php数组的一些常见操作汇总
2011/07/17 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
基于jQuery实现仿51job城市选择功能实例代码
2016/03/02 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
JavaScript字符串对象
2017/01/14 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
js 输入框 正则表达式(菜鸟必看教程)
2017/02/19 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python实现内存监控系统
2021/03/07 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
工厂保洁员岗位职责
2013/12/04 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
郭明义电影观后感
2015/06/08 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL