OpenCV—色彩空间

色彩空间转换API

cv.COLOR_本身的api  2  想转换的api      

通过以上实现之间的API之间的相互转换 

import cv2 as cv


# 色彩空间之间的相互转换
def color_space_demo(img):

    gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    cv.imshow("gray", gray)

    hsv = cv.cvtColor(img,cv.COLOR_BGR2HSV)
    cv.imshow("hsv", hsv)

    yuv = cv.cvtColor(img, cv.COLOR_BGR2YUV)
    cv.imshow("yuv", yuv)

    ycr = cv.cvtColor(img, cv.COLOR_BGR2YCrCb)
    cv.imshow("yrc", ycr)


src = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg")
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)
cv.imshow("input img", src)
color_space_demo(src)
cv.waitKey(0)
cv.destroyAllWindows()

inRange

cv.inRange(src, lowerb, upperb, dst=None)
inRange提取视屏中想要的颜色
import cv2 as cv
import numpy as np


# inRange提取视屏中想要的颜色
def extract_object_demo():
    captual = cv.VideoCapture("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/1.wmv")
    while True:
        ret, frame = captual.read()  # 读取视频
        if ret == False:
            break
        hsv = cv.cvtColor(frame, cv.COLOR_BGR2HSV)
        lower_hsv = np.array([0, 0, 46])  # 想提取颜色最低值
        upper_hsv = np.array([180, 43, 220])  # 想提取颜色最高值
        mask = cv.inRange(hsv, lowerb=lower_hsv, upperb=upper_hsv)
        cv.imshow("video", frame)
        cv.imshow("mask", mask)
        c = cv.waitKey(40)
        if c == 27:  # 27 的时候 是退出
            break


src = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg")
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)
cv.imshow("input img", src)
extract_object_demo()
cv.waitKey(0)
cv.destroyAllWindows()

效果图:

 

通道的分离与合并

cv.split(m, mv=None) 对通道进行分离操作

cv.merge(mv, dst=None)  合并

import cv2 as cv


src = cv.imread("D:/JetBrains/PyCharm 2019.1.3/PycharmProjects/Study/opencv_study/Penguins.jpg")
cv.namedWindow("input img", cv.WINDOW_AUTOSIZE)
cv.imshow("input img", src)

# 通道分离
b, g, r = cv.split(src)  # 分离通道
cv.imshow("blue", b)
cv.imshow("green", g)
cv.imshow("red", r)

# 分离之后给某一通道赋值
src[:, :, 2] = 0
cv.imshow("changed_img", src)

# 通道合并
src = cv.merge([b, g, r])
src[:, :, 1] = 0  # 自定义的选择颜色
cv.imshow("merge_img", src)

cv.waitKey(0)
cv.destroyAllWindows()

效果图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值