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的一些用法分享
Oct 07 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
python中os和sys模块的区别与常用方法总结
Nov 14 Python
python3.6使用pymysql连接Mysql数据库
May 25 Python
对python程序内存泄漏调试的记录
Jun 11 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
Python Django路径配置实现过程解析
Nov 05 Python
Python实现Appium端口检测与释放的实现
Dec 31 Python
Python快速优雅的批量修改Word文档样式
May 20 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
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
Javascript typeof 用法
2008/12/28 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
js记录点击某个按钮的次数-刷新次数为初始状态的实例
2017/02/15 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
vue+php实现的微博留言功能示例
2019/03/16 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
举例讲解Python中装饰器的用法
2015/04/27 Python
python统计cpu利用率的方法
2015/06/02 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python2与Python3的区别实例分析
2019/04/11 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python画图常规设置方式
2020/03/05 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
Python调用JavaScript代码的方法
2020/10/27 Python
使用Python封装excel操作指南
2021/01/29 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
歌唱比赛获奖感言
2014/01/21 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
周年庆典答谢词
2015/01/20 职场文书
简历自我评价模板
2015/03/11 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python