opencv 颜色空间转换

颜色空间转换

'''
在 OpenCV 中有超过150 种进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种 BGR↔Gray 和 BGR↔HSV。
我们 用到的函数是 cv2.cvtColor(input_image flag) 其中 flag 就是转换类型。
对于 BGR↔Gray 的转换, 我们 使用的 flag 就是 cv2.COLOR_BGR2GRAY。 同样对于 BGR↔HSV 的转换 我们用的 flag 就是 cv2.COLOR_BGR2HSV
'''
import cv2
from pprint import pprint
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
pprint(flags)
#在 OpenCV 的 HSV 格式中 H 色彩/色度 的取值范围是 [0 179]
#  S 饱和度 的取值范围 [0 255]
# V 亮度 的取值范围 [0 255]。

物体跟踪

将一幅图片从BGR转换为HSV,因为HSV颜色空间中比BGR空间更容易表示一个特定颜色。

import cv2
import numpy as np

# 定蓝色的阈值
# lower = np.array([110, 50, 50])
# upper = np.array([130, 255, 255])
#黄色
lower = np.array([20, 100, 100])
upper = np.array([30, 255, 255])
# 黑色
# lower = np.array([0, 0, 0])
# upper = np.array([180, 255, 30])

img=cv2.imread('./img1.png')
# 换到 HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 根据阈值构建掩模
mask = cv2.inRange(hsv, lower, upper)
# mask = cv2.inRange(hsv, lower_black, upper_black)
# 对原图像和掩模位运算
res = cv2.bitwise_and(img, img, mask=mask)

# 显示图像
cv2.imshow('image', np.hstack((img,res)))
cv2.imwrite('image.png',np.hstack((img,res)))
k = cv2.waitKey()

掩膜

图像掩模是用选定的图像、图形或物体、对待处理的图像(全部或局部)进行遮挡来控制图像处理的区域或处理过程

这里写图片描述

 得到掩膜的过程。就是遍历图像的每一个像素,比较像素是不是在lower-upper之间,如果在那么则将这个像素置为255

import cv2
import numpy as np

lower = np.array([20, 100, 100])
upper = np.array([30, 255, 255])

img=cv2.imread('./img1.png')
# 换到 HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 根据阈值构建掩模
mask = cv2.inRange(hsv, lower, upper)

# print('mask',mask[40:48,40:49])
# print('hsv',hsv[40:48,40:49])
print(mask[45,45])
print(hsv[45,45])
cv2.imshow('image',mask)
cv2.waitKey()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一壶浊酒..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值