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

2023-11-05

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

首先导入包:

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)

运行结果如下图所示:

方法二:使用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)

运行结果如下:


方法三:使用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)

运行结果如下:


更多关于使用PIL库中的Image模块的convert()函数的知识请参考博客:https://www.2cto.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)

运行结果如下:



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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 【图像处理】【图像去模糊】 总结

    本人最近由于做相关去卷积工作 查阅了上百篇文献 发现在这个领域 可能也是 水太深 了 并没有一篇较好的综述 现在做以下总结 只对高斯与散焦模糊的非盲去卷积领域 对于运动模糊并未做总结 但实际上除了点扩散函数的估计有区别 实际上这三类去模糊甚
  • Batch Normalization(BN)超详细解析

    单层视角 神经网络可以看成是上图形式 对于中间的某一层 其前面的层可以看成是对输入的处理 后面的层可以看成是损失函数 一次反向传播过程会同时更新所有层的权重W1 W2 WL 前面层权重的更新会改变当前层输入的分布 而跟据反向传播的计算方式
  • Python打开图像始终提示错误error:(-215) size.width>0 && size.height>0

    用Python打开图像始终提示错误 cv2 error C projects opencv python opencv modules highgui src window cpp 331 error 215 size width gt 0
  • 两种方法实现Windows系统下批量重命名文件

    任务 我们现在有一批文件 想要批量的重命名文件 方便程序读写 例如 将下面的这些图片重命名为1 jpg 2 jpg 1000 jpg 总不能一个一个改吧 Windows自带的重命名 Windows自带的功能也可以进行重命名 操作很简单 第一
  • 著名的图像检索系统

    1 QBIC Query By Image Content 图像检索系统是 IBM 公司 90年代开发制作的图像和动态景象检索系统 是第一个基于内容的商业化的图像检索系统 QBIC 系统提供了多种的查询方式 包括 利用标准范图 系统自身提供
  • 转载之remosaic

    一 Quadra CFA 介绍 Quadra CFA Quadra Color Filter array 功能提高了在弱光条件下的性能和信噪比 此功能在弱光条件下提供明亮和清晰的图像 在正常光照条件下提供高分辨率图像 Quadra CFA有
  • opencv实现图片裁剪和缩放

    1 格式转换 yuv2rgb include
  • python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    在处理图像的时候经常是读取图片以后把图片转换为灰度图 作为一个刚入坑的小白 我在这篇博客记录了四种处理的方法 首先导入包 import numpy as np import cv2 import tensorflow as tf from
  • 什么是IPU?

    在图像识别的SOC中 有一个很重要的单元 IPU Image Processing Unit 图像处理单元 图像处理单元的目标是提供从图像输入 摄像头传感器 电视信号输入等 到显示设备 LCD显示屏 TV输出 外部图像处理单元等 端到端的数
  • keras fine-tune方法

    https blog csdn net jdzwanghao article details 80697104
  • MATLAB中求图像中某一区域的质心

    在 MATLAB图像处理宝典 秦襄培 编 384页 有 一个regionprops函数 这个实现对二值图的多种描述 以下内容http blog 163 com zwg 1314 126 blog static 353332462011918
  • 完成U-net细胞分割的一些准备

    使用本地上传文件 from google colab import files uploaded files upload for fn in uploaded keys print User uploaded file name with
  • 图像 ISP 处理流程以及新人学习图像的注意点

    1 什么是 ISP ISP 全称 Image Signal Processing 即图像信号处理 景物通过光学图像投射到 sensor 表面后 光电转换为模拟电信号 消除噪声后经过 A D 转换后变为数字图像信号 由于原始的图像是 Baye
  • CData API Server全面且文档完整的API

    CData API Server全面且文档完整的API 使用现有业务信息创建API 连接到任何SQL以及NoSQL数据库以及API服务器 都会立即生成灵活 全面且文档完整的API 发现数据集成的潜力 API服务器API服务器提供了在企业AP
  • UGUI内核大探究(九)Image与RawImage

    Image组件是UGUI里最常用的组件 可能没有之一 我们知道其实还有一个RawImage组件 那么二者的区别是什么呢 之前的文章UGUI内核大探究 八 MaskableGraphic中我们提到过 二者 连同Text 都继承自Maskabl
  • opencv实现阈值分割

    文章目录 基础函数 直方图阈值 实现 threshold 函数使用 三角法阈值 实现 迭代法阈值 算法步骤 Python语法补充 实现 大津法 理论 cv实现 底层复现 自适应阈值 理论 具体操作步骤 优化 CV实现 底层复现 基础函数 在
  • 【经验分享】用PS如何将图片的四角做成圆弧角

    经验分享 用PS如何将图片的四角做成圆弧角 在很多情况下圆角图片看起来更美观整洁 今天分享一下自己经常使用 PS 是如何将图片做出圆弧角 仅供参考 以下面这张图片为例 一 在 PS 中打开素材图片 选择 圆角矩形工具 二 在上方选项卡中选择
  • 转载RAW, YUV, RGB, JPEG之间关系

    RAW格式 从Sensor端最初获取的数字格式的数据 又称为Bayer格式 每个像素信息只有RGB中的某个颜色信息 且每4个像素中有2个像素为G信息 1个R信息 1个B信息 即GRBG格式 2M像素Camera以RAW10格式 每个像素10
  • 与窗口大小无关的图像滤波算法

    问题 一幅24位彩色图像 其上有一些红色区域 这些区域都是相连的 为了将图像中红色且相连的部分分离出来 使用如下算法 对单个像素进行判断 若满足R 10 gt G且R 10 gt B 那么就认为该像素呈红色 因为图像原因 可能在某个位置孤立
  • 相机 - 02 图像处理isp

    isp 知识 1 基本概念 1 1 isp 模块简介 参考 1 基本概念 图像处理流程图 1 光线 gt lens gt sonsor gt 光电转换 gt A D gt bayer pattern gt isp gt I O bayer

随机推荐

  • java多线程同步以及线程间通信

    文章目录 1 线程同步问题的产生 2 解决线程同步的两种典型方案 2 1 通过锁 Lock 对象的方式解决线程安全问题 2 2 synchronied关键字 2 2 1 同步方法 2 2 2 同步块 2 2 3 通过synchronied关
  • 若依框架富文本框的实现

    若依框架富文本框的实现 前端部分 引入summernote的js跟css
  • RestTemple调用接口,上传文件form-data方式

    前端调用后台服务上传文件 后端使用restTemple调用接口把文件传到其他服务上去 RequestMapping test public void upload MultipartFile file String originalFile
  • gcc编译时 warning:incompatible implicit declaration of built-in function ‘xxx’

    报错是因为我们没有添加该函数所在头文件 可通过man xxx来查询xxx函数所在的头文件 添加后即可
  • leetcode712. 两个字符串的最小ASCII删除和(最短非公共子序列)

    传送门 题目 给定两个字符串s1 s2 找到使两个字符串相等所需删除字符的ASCII值的最小和 输入 s1 sea s2 eat 输出 231 解释 在 sea 中删除 s 并将 s 的值 115 加入总和 在 eat 中删除 t 并将 1
  • 流利说 Level 5 全文

    Level 5 Unit 1 1 4 Listening Lesson 1 Jessica s Class Reunion1 2 Vocabulary Lesson 3 Actions and Change Lesson 4 Types o
  • Qt C++中的关键字explicit

    最近在复习QT 准备做项目了 QT Creator 默认生成的代码 explicit Dialog QWidget parent 0 中 有这么一个关键字explicit 用来修饰构造函数 以前在Windows下写程序的时候 基本上没有碰到
  • 【PHP】【组件使用】【phpexcel】【phpexcel导入导出】

    PHP 组件使用 phpexcel phpexcel导入导出 一 前提 PHP 7 3 tp3 2 tp5版本及以上的可能需要修改 二 phpexcel包引入 composer require phpoffice phpexcel 三 复用
  • pscp --windows上下载远程SSH服务器实用工具

    1 下载pscp exe pscp exe 工具下载地址 下载完后 复制粘贴到C Windows System32目录下 以便我们来调用 或者将下载文件的路径添加到系统环境变量中 2 pscp工具使用 1 上传本地文件到SSH服务器 将本地
  • 2019年个人总结

    今天是今年的最后 一天 写个个人总结 对自己一年来的工作进行总结 通过分析和研究进而肯定成绩并找出问题 得出经验和教训 2019年自己的前端方面 移动端 完成了好艺的app项目 协会的微官网 好艺的app转为公众号 学生开学统计项目等 其中
  • Python10个与数学有关的简单实例代码

    注意 我用的python2 7 大家如果用Python3 0以上的版本 请记得在print 函数哦 如果因为版本问题评论的 不做回复哦 1 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 程序分析 可填在百
  • Javascript之BOM与DOM讲解

    文章转载自 https blog csdn net qq877507054 article details 51395830 一 Javascript组成 JavaScript的实现包括以下3个部分 ECMAScript 核心 描述了JS的
  • 项目开发中常用的十六进制方式打印实现

    在项目开发中 比如网络开发 多媒体播放开发等 常常用到将接受数据和发送数据或者需要解析的数据 用打印方式呈现 方便自己定位问题 在这个时候 printf难免没有满足我们的需要了 因为printf bufdata s n bufdata 是用
  • keil Error: Could not load file解决方法

    1 你点完建造文件 然后进行调试 不会出错 2 不要点编译文件 编译后文件调试状态关闭了 再调试 这样就会出这个错误
  • js-基础知识(一)

    1 在html中引入js的两种方法 1 页面内嵌 2 外部引入 为符合web标准 w3c标准中的一项 结构 样式 行为相分离 通常会采用外部引入
  • mmsegment数据pipeline操作(七)

    目录 1 数据项配置 2 voc数据集传入参数 3 CustomDataset数据读取 4 self pipeline results 4 1 读图 4 2 数据增广 4 3 格式转换 4 4 测试 5 扩展和使用自定义管道 1 数据项配置
  • 计算机专业留学动机信范文,出国留学,如何写好动机信(Motivation Letter)?

    一篇好的动机信最重要的是简洁易懂 用最简洁的语言展示申请者最突出的优点 浙大毕业后在美国 UIUC 和欧洲 KTH CTH EPFL NTNU 留学 PhD 另外由于在之前的工作中也参与系里招生 帮老板评审申请材料 参与系里招生会议 经手的
  • 数据结构之线性表预习

    1 简述线性表中顺序存储结构的含义及主要元素 描述顺序存储结构需要三个属性 1 存储空间的起始位置 数组 data 它的存储位置就是存储空间的存储位置 2 线性表的最大存储容量 3 线性表的当前长度 数组长度 与 线性表长度区别 数组长度
  • 编程新手导论

    第二部分 导论 这一部分主要是关于编程的导论 要懂得一点思想具备一点常识 设计 编码 与软工 编程与思想 这一章解释了三种思想 原语 抽象 组合 和软件开发的二个重要过程 软件工程的相关概念 是编程入门的关键 要懂得一点领域内的数学 数学与
  • python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    在处理图像的时候经常是读取图片以后把图片转换为灰度图 作为一个刚入坑的小白 我在这篇博客记录了四种处理的方法 首先导入包 import numpy as np import cv2 import tensorflow as tf from