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爬虫给孩子起个好名字
Feb 14 Python
深入理解Python单元测试unittest的使用示例
Nov 18 Python
python读取和保存视频文件
Apr 16 Python
Python多重继承的方法解析执行顺序实例分析
May 26 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
python 装饰器重要在哪
Feb 14 Python
python 制作一个gui界面的翻译工具
May 14 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
python图像处理 PIL Image操作实例
Apr 09 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/01/05 PHP
php数组中删除元素之重新索引的方法
2014/09/16 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
浅谈javascript中的 “ && ” 和 “ || ”
2017/02/02 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
关于axios不能使用Vue.use()浅析
2018/01/12 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
python 网络爬虫初级实现代码
2016/02/27 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
在python中bool函数的取值方法
2018/11/01 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Python3实现定时任务的四种方式
2019/06/03 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python如何使用腾讯云发送短信
2020/09/17 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
英国性能汽车零件和发动机配件在线:Maxpeedingrods
2019/11/05 全球购物
数学专业推荐信范文
2013/11/21 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
小学生光盘行动倡议书
2015/04/28 职场文书
雷锋的观后感
2015/06/10 职场文书
运动会主持人开幕词
2016/03/04 职场文书