浅谈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实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
python执行外部程序的常用方法小结
Mar 21 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
详解python中的模块及包导入
Aug 30 Python
基于python监控程序是否关闭
Jan 14 Python
Python类继承和多态原理解析
Feb 05 Python
基于python实现把json数据转换成Excel表格
May 07 Python
Python 列表推导式需要注意的地方
Oct 23 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 Python
python文件目录操作之os模块
May 08 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
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
js编写简易的计算器
2020/07/29 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
wxPython 入门教程
2008/10/07 Python
Python datetime时间格式化去掉前导0
2014/07/31 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
安装dbus-python的简要教程
2015/05/05 Python
python如何实现内容写在图片上
2018/03/23 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
求职信范文怎么写
2014/01/29 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
岗位职责说明书模板
2014/07/30 职场文书
年度考核个人总结
2015/03/06 职场文书
发票退票证明
2015/06/24 职场文书