ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

OpenCv-Python学习笔记(五):颜色空间转换

2022-02-21 19:58:00  阅读:176  来源: 互联网

标签:转换 img Python COLOR cv2 笔记 OpenCv BGR HSV


目录

转换颜色空间

在 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()函数:检查数组元素是否位于其他两个数组的元素之间。即检查图像上中的每个像素点,如果像素点的值在设置的范围之间,则将该点设置为白色,否则为黑色,返回一幅黑白的图像。
第一个参数表示待检查的图像。
第二个参数表示下边界数组或者标量。
第三个参数表示上边界数组或者标量。
在这里插入图片描述
在这里插入图片描述

标签:转换,img,Python,COLOR,cv2,笔记,OpenCv,BGR,HSV
来源: https://blog.csdn.net/weixin_44077524/article/details/123053724

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有