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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
用Python编写web API的教程
Apr 30 Python
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
Python装饰器用法实例总结
May 26 Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
Sep 14 Python
python 实现逻辑回归
Dec 30 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
php伪静态之APACHE篇
2014/06/02 PHP
php中define用法实例
2015/07/30 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
2016/09/23 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
js异或加解密效果代码
2008/06/25 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
Python中的列表知识点汇总
2015/04/14 Python
Python爬豆瓣电影实例
2018/02/23 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
初学者学习Python好还是Java好
2020/05/26 Python
什么是python的id函数
2020/06/11 Python
《骆驼和羊》教学反思
2014/02/27 职场文书
企业年度评优方案
2014/06/02 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
客房部经理岗位职责
2015/02/02 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
老人院义工活动感想
2015/08/07 职场文书