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多进程与服务器并发原理及用法实例分析
Aug 21 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
python移位运算的实现
Jul 15 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
python实现翻译word表格小程序
Feb 27 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python with语句的原理与用法详解
Mar 30 Python
基于pandas向csv添加新的行和列
May 25 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
Python常用外部指令执行代码实例
Nov 05 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
一键生成各种尺寸Icon的php脚本(实例)
2017/02/08 PHP
[Web]防止用户复制页面内容和另存页面的方法
2009/02/06 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
jquery加载图片时以淡入方式显示的方法
2015/01/14 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
ES6 fetch函数与后台交互实现
2018/11/14 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
vue深度监听(监听对象和数组的改变)与立即执行监听实例
2020/09/04 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[03:23:49]2016.12.17日完美“圣”典全回顾
2016/12/19 DOTA
python获取本机mac地址和ip地址的方法
2015/04/29 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
详解Django中的权限和组以及消息
2015/07/23 Python
Python制作刷网页流量工具
2017/04/23 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
python中有关时间日期格式转换问题
2019/12/25 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
python 调用Google翻译接口的方法
2020/12/09 Python
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014年团总支工作总结
2014/11/21 职场文书
优秀教师先进材料
2014/12/16 职场文书
高中班主任评语
2014/12/30 职场文书
质检员岗位职责
2015/02/03 职场文书
贷款担保书范本
2015/09/22 职场文书