opencv-python(7):颜色空间转换
来源:互联网 发布:centos apt 编辑:程序博客网 时间:2024/06/03 04:09
在opencv中有超过150种进行颜色转换的方法,但我们经常用到的只是两种:BGR-灰度图,跟BGR-HSV。
我们用到的函数是:cv2.cetColor(input_image,flag),flag就是我们要转换的类型。
对于灰度图转换,flag就是cv2.COLOR_BGR2GRAY,对于HSV转换,用到的flag是cv2.COLOR_BGR2HSV。
详细可看 点击打开链接
在opencv的HSV格式中,H(hue:色彩/亮度)的取值范围是[0,179],S(saturation:饱和度)取值范围是[0,255],V(value:亮度)的取值范围是[0,255]。
1、提取图像中的蓝色部分
代码:
import cv2import numpy as npimg=cv2.imread('C:\\Users\\WLX\\Desktop\\10.jpg',cv2.IMREAD_COLOR)hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)lower_blue=np.array([110,50,50])upper_blue=np.array([130,255,255])mask=cv2.inRange(hsv,lower_blue,upper_blue)res=cv2.bitwise_and(img,img,mask=mask)cv2.imshow('hsv',hsv)cv2.imshow('mask',mask)cv2.imshow('res',res)cv2.imshow('img',img)k=res=cv2.waitKey(5)&0xFFwhile k==27: breakcv2.waitKey(0)cv2.inRange()函数
inRange(src,lowerb, upperb[, dst]) -> dst
第一个参数是原数组,可以是单通道也可以是多通道,lower:下界 upper上界
在python中,假设是单通道,如果lower=[0],upper=[128],对每个数在0-128之间取255,其余的取0
如果在多通道,假设lower=[0,0,0],upper=[128,128,128],对于每个数都在0-128之间取255,其余的取0,最后几个数相与,都是255取255,否则取0
结果:
mask:
res:
2、如何寻找对象的HSV值
上面我们提取蓝色,但我们首先应该知道蓝色的HSV值,我们用一下函数取找出
函数:
import numpy as npimport cv2green=np.uint8([[[0,255,0]]])hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)print(hsv_green)结果是:[[[60 255 255]]]
那我们可以使用[H-10,100,100]作为下限,[H+10,255,255]作为上限。
3、练习
同时提取三个不同颜色的物体
原图:
代码:
import numpy as npimport cv2img=cv2.imread('C:\\Users\\WLX\\Desktop\\12.png',cv2.IMREAD_COLOR)hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)lower_blue=np.array([110,100,100])#blueupper_blue=np.array([130,255,255])lower_green=np.array([50,100,100])#greenupper_green=np.array([70,255,255])lower_red=np.array([0,100,100])#redupper_red=np.array([10,255,255])blue_mask=cv2.inRange(hsv,lower_blue,upper_blue)green_mask=cv2.inRange(hsv,lower_green,upper_green)red_mask=cv2.inRange(hsv,lower_red,upper_red)blue=cv2.bitwise_and(img,img,mask=blue_mask)green=cv2.bitwise_and(img,img,mask=green_mask)red=cv2.bitwise_and(img,img,mask=red_mask)res=red+blue+greencv2.imshow('res',res)cv2.imwrite('C:\\Users\\WLX\\Desktop\\444.jpg',res)cv2.waitKey(0)cv2.destroyAllWindows()结果:
阅读全文
0 0
- opencv-python(7):颜色空间转换
- Python-OpenCV颜色空间转换
- opencv颜色空间转换
- opencv颜色空间转换
- opencv颜色空间转换
- opencv-python 读取图像并转换颜色空间
- python opencv入门 颜色空间转换(9)
- opencv图像颜色空间转换
- 庞峰Opencv学习(四)--颜色空间转换
- opencv学习之图像颜色空间转换
- openCV--颜色空间转换函数cvCvtColor
- OpenCV的颜色空间转换函数 cvtColor
- Opencv的cvtColor函数-颜色空间转换
- OpenCV 颜色空间转换参数CV_BGR2GRAY改变
- OPENCV入门教程七:颜色空间转换
- OpenCV——颜色空间转换
- opencv hsv cvtColor颜色空间转换
- OpenCV学习笔记--颜色空间及转换
- MFC统计目录子文件子目录个数方法
- CSS基础(五)--行高、a标签及background属性
- qbxt国庆水题记day1
- linux中切换为root用户
- 网页随机格言生成器
- opencv-python(7):颜色空间转换
- oracle 11g64 位 安装文件
- Codeforces Round #330 (Div. 2)C. Warrior and Archer(博弈)
- 数据结构实验之链表二:逆序建立链表
- 清北学堂-D7-T1-bst
- Computer Architecture Background
- centos上安装samtool具体步骤
- Html5_animation动画
- get请求