python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结


Posted in Python onJuly 04, 2019

在处理图像的时候经常是读取图片以后把图片转换为灰度图。作为一个刚入坑的小白,我在这篇博客记录了四种处理的方法。

首先导入包:

import numpy as np
import cv2
import tensorflow as tf
from PIL import Image

方法一:在使用OpenCV读取图片的同时将图片转换为灰度图:

img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)
  print("cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)结果如下:")
  print('大小:{}'.format(img.shape))
  print("类型:%s"%type(img))
  print(img)

运行结果如下图所示:

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

方法二:使用OpenCV,先读取图片,然后在转换为灰度图:

img = cv2.imread(imgfile)
  #print(img.shape)
  #print(img)
  gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #Y = 0.299R + 0.587G + 0.114B
  print("cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)结果如下:")
  print('大小:{}'.format(gray_img.shape))
  print("类型:%s" % type(gray_img))
  print(gray_img)

运行结果如下:

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

方法三:使用PIL库中的Image模块

img = np.array(Image.open(imgfile).convert('L'), 'f') #读取图片,灰度化,转换为数组,L = 0.299R + 0.587G + 0.114B。'f'为float类型
  print("Image方法的结果如下:")
  print('大小:{}'.format(img.shape))
  print("类型:%s" % type(img))
  print(img)

运行结果如下:

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

更多关于使用PIL库中的Image模块的convert()函数的知识请参考博客:https://3water.com/kf/201603/492898.html

方法四:TensorFlow方法:

with tf.Session() as sess:
    img = tf.read_file(imgfile) #读取图片,
    img_data = tf.image.decode_jpeg(img, channels=3) #解码
    #img_data = sess.run(tf.image.decode_jpeg(img, channels=3))
    img_data = sess.run(tf.image.rgb_to_grayscale(img_data)) #灰度化
    print('大小:{}'.format(img_data.shape))
    print("类型:%s" % type(img_data))
    print(img_data)

运行结果如下:

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

可以看出:TensorFlow的方法的结果与上面的三种方法的处理结果略有不同。所以在处理图像的时候最好保持方法的一致性,最好不要用这种方法读取完图片然后用另一种方法处理图片,以避免不必要的bug影响图片处理处理结果。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python random模块常用方法
Nov 03 Python
Python如何实现文本转语音
Aug 08 Python
python安装Scrapy图文教程
Aug 14 Python
解决PyCharm同目录下导入模块会报错的问题
Oct 13 Python
python实现简易动态时钟
Nov 19 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
python将字符串转变成dict格式的实现
Nov 18 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 Python
pybind11和numpy进行交互的方法
Jul 04 #Python
pandas计算最大连续间隔的方法
Jul 04 #Python
python SQLAlchemy 中的Engine详解
Jul 04 #Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 #Python
pybind11在Windows下的使用教程
Jul 04 #Python
Pandas_cum累积计算和rolling滚动计算的用法详解
Jul 04 #Python
Pycharm简单使用教程(入门小结)
Jul 04 #Python
You might like
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
js和php邮箱地址验证的实现方法
2014/01/09 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
PHP运行模式汇总
2016/11/06 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
实现js保留小数点后N位的代码
2014/11/13 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
python实现查询苹果手机维修进度
2015/03/16 Python
pandas数值计算与排序方法
2018/04/12 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
python 对xml解析的示例
2021/02/27 Python
解决margin 外边距合并问题
2019/07/03 HTML / CSS
巧克力蛋糕店创业计划书
2014/01/14 职场文书
主要领导对照检查材料
2014/08/26 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
培养联系人考察意见
2015/06/01 职场文书