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文件夹与文件的相关操作(推荐)
Jul 25 Python
python rsa 加密解密
Mar 20 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
使用Python快乐学数学Github万星神器Manim简介
Aug 07 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
利用Python实现kNN算法的代码
Aug 16 Python
使用pyqt5 tablewidget 单元格设置正则表达式
Dec 13 Python
Django重设Admin密码过程解析
Feb 10 Python
为什么是 Python -m
Jun 19 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
区分python中的进程与线程
Aug 13 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
PHPMailer发送邮件
2016/12/28 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
JavaScript Array对象使用方法解析
2019/09/24 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
机器学习python实战之手写数字识别
2017/11/01 Python
利用arcgis的python读取要素的X,Y方法
2018/12/22 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
2020/02/17 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
公司庆典邀请函范文
2014/01/13 职场文书
一年级学生评语大全
2014/04/21 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
TS 类型兼容教程示例详解
2022/09/23 Javascript