Python OpenCV 彩色与灰度图像的转换实现


Posted in Python onJune 05, 2021

彩色图像转换为灰度图像

第一种方式通过 imread 读取图像的时候直接设置参数为 0 ,自动转换彩色图像为灰度图像
第二种方式,可以通过 split 进行通道分离,或者叫做读取单个通道,也可以将一个彩色图像分离成 3 个单通道的灰度图像

今天要学习的方法,是通过一个叫做 cvtColor 的方法实现该操作。

cv2.cvtColor() 方法用于将图像从一种颜色空间转换为另一种颜色空间。
OpenCV 提供了 150 多种 color-space 转换方法。多到用不过来~

该方法的语法格式为:

cv2.cvtColor(src, code[, dst[, dstCn]])

参数:

  • src:它是要更改其色彩空间的图像。
  • code:它是色彩空间转换代码。
  • dst:它是与 src 图像大小和深度相同的输出图像,可选参数。
  • dstCn:它是目标图像中的频道数。如果参数为 0,则通道数自动从 src 和代码得出,可选参数。

参数翻译成中文,也找到了

cvtColor(src,dst,code,dstCn)  ===>  (原图像,color转化代码,输出图像,输出通道)

转换灰度图代码如下:

import cv2

# path
path = './7_1.jpg'

# 读取图片
src = cv2.imread(path)

# 图片展示窗口名称
window_name = 'Image'

# BGR 转换成灰度图
image = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)

cv2.imshow(window_name, image)

cv2.waitKey()

Python OpenCV 彩色与灰度图像的转换实现

也看到了 HSV 格式图片,转换结果如下,有点吓人,顺便转换了其他的一些格式:

import cv2
import matplotlib.pyplot as plt
# path
path = './7_1.jpg'

# 读取图片
src = cv2.imread(path)

# 图片展示窗口名称
window_name = 'Image'

# BGR 转换成 RGB
image1 = cv2.cvtColor(src, cv2.COLOR_BGR2RGB)

# BGR 转换成 Gray
image2 = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)

# BGR 转换成 HSV
image3 = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)

plt.subplot(1, 3, 1)
plt.imshow(image1)
plt.title("RGB")

plt.subplot(1, 3, 2)
plt.imshow(image2,"gray")
plt.title("GRAY")

plt.subplot(1, 3, 3)
plt.imshow(image3,"hsv")
plt.title("hsv")

plt.show()

Python OpenCV 彩色与灰度图像的转换实现

伪彩色图像

彩色图片可以变成灰度图,那相应的灰度图也可以变成彩色的,当然这里说的是伪彩色图像。

这部分内容由于目前应用场景不明确,给大家贴一下我学习过程中看到的博客吧。

https://blog.csdn.net/kingroc/article/details/101302997
https://blog.csdn.net/sns1991sns/article/details/102838303
https://blog.csdn.net/xiaxuesong666/article/details/79522904

关于伪彩色图像的说明,在百度百科可以直接查阅到。

Python OpenCV 彩色与灰度图像的转换实现

感谢大佬方向性的指导

到此这篇关于Python OpenCV 彩色与灰度图像的转换实现的文章就介绍到这了,更多相关OpenCV彩色与灰度图像转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现把回车符\r\n转换成\n
Apr 23 Python
PyMongo安装使用笔记
Apr 27 Python
python获取本地计算机名字的方法
Apr 29 Python
python http接口自动化脚本详解
Jan 02 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
python系列 文件操作的代码
Oct 06 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
python 多线程死锁问题的解决方案
Aug 25 Python
Python页面加载的等待方式总结
Feb 28 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
Python深度学习之实现卷积神经网络
python opencv通过4坐标剪裁图片
Jun 05 #Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 #Python
拒绝盗图!教你怎么用python给图片加水印
python四个坐标点对图片区域最小外接矩形进行裁剪
Python OpenCV 图像平移的实现示例
Python包argparse模块常用方法
Jun 04 #Python
You might like
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
xml和web特殊字符
2009/04/28 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
使用 JScript 创建 .exe 或 .dll 文件的方法
2011/07/13 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
jQuery实现鼠标划过展示大图的方法
2015/03/09 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
JS中的作用域链
2017/03/01 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
解决Python requests 报错方法集锦
2017/03/19 Python
python实现简单神经网络算法
2018/03/10 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python实现简单井字棋游戏
2020/03/04 Python
Python colormap库的安装和使用详情
2020/10/06 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
接口可以包含哪些成员
2012/09/30 面试题
公司门卫工作职责
2014/06/28 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python