本节中,你将学习到

如何改变图像颜色空间

  • 1.如何将图像从一个色彩空间转换到另一个,像BGR--》灰色,BGR--》HSV 等
  • 2.创建应用程序,提取视频中的彩色对象

1.如何将图像从一个色彩空间转换到另一个,像BGR–》灰色,BGR–》HSV 等

OpenCV中有超过150种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔灰色和BGR↔HSV。

对于颜色转换,我们使用cv函数。cvtColor(input_image, flag),其中flag决定转换的类型。

对于BGR→灰度转换,我们使用标志cv.COLOR_BGR2GRAY。类似地,对于BGR→HSV,我们使用标志cv.COLOR_BGR2HSV。要获取其他标记,只需在Python终端中运行以下命令:

import cv2 as cv
>>> flags = [i for i in dir(cv) if i.startswith('COLOR_')]
>>> print( flags )

注意 HSV的色相范围为[0,179],饱和度范围为[0,255],值范围为[0,255]。不同的软件使用不同的规模。
转换颜色空间示例:

#转换颜色空间
def color_space_demo(image):#将颜色空间从BGR2转换到GRAYgray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)cv.imshow("gray",gray)# 将颜色空间从BGR2转换到HSVhsv = cv.cvtColor(image, cv.COLOR_BGR2HSV)cv.imshow("hsv", hsv)# 将颜色空间从BGR2转换到YUVyuv = cv.cvtColor(image, cv.COLOR_BGR2YUV)cv.imshow("yuv", yuv)# 将颜色空间从BGR2转换到YCrCbYCrCb=cv.cvtColor(image,cv.COLOR_BGR2YCrCb)cv.imshow("YCrCb",YCrCb)

2.创建应用程序,提取视频中的彩色对象

现在我们知道了如何将BGR图像转换成HSV,我们可以使用它来提取一个有颜色的对象。在HSV中比在BGR颜色空间中更容易表示颜色。在我们的应用程序中,我们将尝试提取一个蓝色的对象。方法如下: - 取视频的每一帧 - 转换从BGR到HSV颜色空间 - 我们对HSV图像设置蓝色范围的阈值 - 现在单独提取蓝色对象,我们可以对图像做任何我们想做的事情。

import cv2 as cv
import numpy as np
cap = cv.VideoCapture(0)
while(1):# 读取帧ret, frame = cap.read()# 转换颜色空间 BGR 到 HSVhsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)# 定义HSV中蓝色的范围lower_blue = np.array([110,50,50])upper_blue = np.array([130,255,255])# 制作掩膜,设置HSV的阈值使得只取蓝色mask = cv.inRange(hsv, lower_blue, upper_blue)# 将掩膜和图像逐像素相加,提取感兴趣的区域res = cv.bitwise_and(frame,frame, mask= mask)cv.imshow('frame',frame)cv.imshow('mask',mask)cv.imshow('res',res)k = cv.waitKey(5) & 0xFFif k == 27:break
cv.destroyAllWindows()


图像掩膜是用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
数字图像处理中,掩模为二维矩阵数组,有时也用多值图像,图像掩模主要用于:
①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。
②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
③结构特征提取,用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
④特殊形状图像的制作。

在所有图像基本运算的操作函数中,凡是带有掩膜(mask)的处理函数,其掩膜都参与运算(输入图像运算完之后再与掩膜图像或矩阵运算)。

利用掩膜(mask)进行“与”操作,即掩膜图像白色区域是对需要处理图像像素的保留,黑色区域是对需要处理图像像素的剔除,其余按位操作原理类似只是效果不同而已。
3.如何找到要追踪的HSV值?
这是在stackoverflow.com上发现的一个常见问题。它非常简单,你可以使用相同的函数cv.cvtColor()。你只需传递你想要的BGR值,而不是传递图像。例如,要查找绿色的HSV值,请在Python终端中尝试以下命令:

green = np.uint8([[[0,255,0 ]]])
>>> hsv_green = cv.cvtColor(green,cv.COLOR_BGR2HSV)
>>> print( hsv_green )
[[[ 60 255 255]]]

部分内容转自原文链接:https://blog.csdn.net/Lily_9/article/details/83143120

Opencv图像处理之改变颜色空间相关推荐

  1. OpenCV系列之改变颜色空间 | 十三

    目标 在本教程中,你将学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等 除此之外,我们还将创建一个应用程序,以提取视频中的彩色对象 你将学习以下功能:cv.cvtColor, ...

  2. 【opencv图像处理】--2. 颜色空间,绘制图形,绘制(中文)文本

    "人群里敞着一扇门" 1. 颜色空间的基础知识 1.1 色彩空间转换 2. mat数据结构的深浅拷贝 ndarray的常见属性 3.颜色通道的分离和合并 4. 绘制图形 5. 绘制 ...

  3. OpenCV中的图像处理 —— 改变颜色空间+图像几何变换

    OpenCV中的图像处理 -- 改变颜色空间+图像几何变换 这一部分主要介绍OpenCV图像处理中的改变颜色空间和图像的几何变换,颜色空间的改变应用非常广泛,在处理图像的实际问题中,经常需要要图像变换 ...

  4. opencv converTO()函数 转换图像的数据类型不改变通道数,注意与cvtColor()改变颜色空间/彩色空间/色彩空间函数区分

    注意与cvtColor()函数的区别,cvtColor改变颜色空间,通道数也会改变,converTo只改变数据类型,不改变通道数,原来是几个通道转换后还是几个通道 示例: src.convertTo( ...

  5. Python+Opencv图像处理新手入门教程(二):颜色空间转换,图像大小调整,灰度直方图

    一步一步来吧 上一节:Python+Opencv图像处理新手入门教程(一):介绍,安装与起步 1.什么是图像 对于计算机而言,图像的本质是一个由像素点构成的矩阵. 例如我们用肉眼很容易分辨一辆汽车的后 ...

  6. opencv图像处理总结

    opencv图像处理基本操作 1. 矩阵数据类型 通用矩阵数据类型: CV_<bit_depth>(S|U|F)C<number_of_channels> 其中,S表示带符号整 ...

  7. OpenCV图像处理基础(变换和去噪)

    OpenCV图像处理基础(变换和去噪) 基础知识 使用OpenCV读取图片 图像变换 仿射变换 图像缩放 图像旋转 图像平移 图像裁剪 图像翻转 亮度与对比度变换 图像去噪 高斯噪声 椒盐噪声 中值和 ...

  8. Python+OpenCV图像处理(一篇全)

    参考:1.网易云课堂 Python+OpenCV图像处理 - 网易云课堂 2.[在水一方xym的博客]业精于勤荒于嬉,行成于思毁于随 - CSDN博客 https://blog.csdn.net/za ...

  9. halcon opencv 图像处理面试指南

    珠海某上市公司算法总监: 1.相机标定的原理与坐标系之间的转换,如何转换 2.激光三角原理,如何搭建 3.测量拟合的过程中有哪些算子,原理什么,接着问5,跌代多少次?什么情况最优,如何优化, 4.那个 ...

最新文章

  1. 这么多年来,我算想明白了!
  2. 智源x清华开源FastMoE,万亿AI模型基石
  3. java插入时间 mssql_JAVA操作数据库Datetime数据
  4. java获取服务器状态_获取远程服务器上 Java 进程的运行状态
  5. facebook 分享页面_Facebook个人资料,页面和组之间有什么区别?
  6. c语言 java append_C++中append函数的用法和函数定义。谢谢!
  7. 操作系统饥饿现象_操作系统复习
  8. 跟闺密逛街 越逛越穷
  9. C#实现IDispose接口
  10. caffe dataset
  11. 纯真数据库mysql_纯真数据库下载或自动更新实现
  12. 面由心生,由脸观心:基于AI的面部微表情分析技术解读
  13. 【关于Spring那些事】——与君初相识
  14. 金融壹账通获毕马威金融科技企业50强 金融全产业链优势凸显
  15. 有一座山就像一个笔架子
  16. 人工智能有哪些优势?人工智能5项技术介绍
  17. C++八股文分享---进程
  18. 光场相机1.0与光场相机2.0
  19. python的imaplib实现搜索邮件
  20. Android中实现一键分享功能

热门文章

  1. 2017第四届中国国际大数据大会成功召开
  2. 作者:胡晓彦(1987-),女,中国科学院国家空间科学中心助理研究员
  3. 作者:蓝梦微, 女, 中国人民大学信息学院博士生,CCF学生会员。
  4. 【软件测试】系统测试
  5. 【操作系统】Semaphore处理吸烟者问题
  6. Spring中的自动装配和Autowired
  7. 2.5 Go 算术运算与变量使用技巧
  8. linux 中的gzip命令
  9. (转载)【TP5.0】设置session有效时长+修改默认存储路径
  10. #Java小案例 随机产生数