浅谈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删除过期log文件操作实例解析
Jan 31 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
python实现微信每日一句自动发送给喜欢的人
Apr 29 Python
深入浅析python 协程与go协程的区别
May 09 Python
python中对数据进行各种排序的方法
Jul 02 Python
python的re模块使用方法详解
Jul 26 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
python通过实例讲解反射机制
Oct 17 Python
python代码区分大小写吗
Jun 17 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
Nov 13 Python
Django扫码抽奖平台的配置过程详解
Jan 14 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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与SQL注入攻击防范小技巧
2011/09/16 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
php和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
2017/02/14 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
python opencv实现简易画图板
2020/08/27 Python
python 自动识别并连接串口的实现
2021/01/19 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
问卷调查计划书
2014/01/10 职场文书
展会邀请函范文
2014/01/26 职场文书
英语故事演讲稿
2014/04/29 职场文书
公司授权委托书样本
2014/09/15 职场文书
2014年安全员工作总结
2014/11/13 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
python实现商品进销存管理系统
2022/05/30 Python
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技