OpenCv-Python学习笔记(五):颜色空间转换
2022/2/21 20:58:03
本文主要是介绍OpenCv-Python学习笔记(五):颜色空间转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 转换颜色空间
- 物体跟踪
转换颜色空间
在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会发现我们经常用到的也就两种:BGR↔Gray 和 BGR↔HSV。
cv2.cvtColor()函数:转换颜色空间。
第一个参数表示待转换的图片。
第二个参数表示转换的类型。
- cv2.COLOR_BGR2GRAY:表示从BGR转换位灰度图像。
- cv2.COLOR_BGR2HSV:表示从BGR转换位HSV。
例:
import cv2 #以彩色图像的格式读取图片 img =cv2.imread("../data/image/4.png",cv2.IMREAD_COLOR) #转换位灰度图像 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转换到HSV img_HSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) cv2.imshow("gray",img_gray) cv2.imshow("HSV",img_HSV) cv2.waitKey()
注意:在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范围是 [0,179], S(饱和度)的取值范围 [0,255],V(亮度)的取值范围 [0,255]。但是不同的软件使用的值可能不同。所以当你需要拿 OpenCV 的 HSV 值与其他软件的 HSV 值进行对比时,一定要记得归一化。
物体跟踪
将一副图片从BGR转换位HSV,利用这一点来提取某个特定颜色的物体。在HSV颜色空间中要比在BGR空间中更容易表示一个特定颜色。
例:提取一个蓝色的物体
import cv2 import numpy as np img =cv2.imread("../data/image/7.png") #转换为HSV img_HSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) #设置蓝色的阈值 lower_blue = np.array([110,50,50]) upper_blue= np.array([130,255,255]) #根据阈值构建掩膜 mask = cv2.inRange(img_HSV,lower_blue,upper_blue) #对原图和掩膜进行位运算 img_res = cv2.bitwise_and(img,img,mask = mask) cv2.imshow("img",img) cv2.imshow("HSV",img_HSV) cv2.imshow("mask",mask) cv2.imshow("res",img_res) cv2.waitKey()
cv2.inRange()函数:检查数组元素是否位于其他两个数组的元素之间。即检查图像上中的每个像素点,如果像素点的值在设置的范围之间,则将该点设置为白色,否则为黑色,返回一幅黑白的图像。
第一个参数表示待检查的图像。
第二个参数表示下边界数组或者标量。
第三个参数表示上边界数组或者标量。
这篇关于OpenCv-Python学习笔记(五):颜色空间转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享