码迷,mamicode.com
首页 > 其他好文 > 详细

3.色彩空间

时间:2020-07-26 01:39:21      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:ssi   attr   base   作用   erb   cloud   nload   dev   tle   

3.色彩空间

 

色彩空间

下面的图的三个点表示的是RGB,当三个通道全是0时是黑色,全是255时是白色。

技术图片

 

 

 

常见的色彩空间

技术图片

 

 

 

1.色彩空间转换的API

  • cv.cvtColor(图片,cv.COLOR_BGR2+“色彩空间”)
In [4]:
import cv2 as cv

def color_space_demo(img):
    #灰度图
    gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
    cv.imshow("gray",gray)
    #hsv色彩空间转换
    hsv=cv.cvtColor(img,cv.COLOR_BGR2HSV)
    cv.imshow("hsv",hsv)
    #yuv色彩空间转换
    yuv=cv.cvtColor(img,cv.COLOR_BGR2YUV)
    cv.imshow("yuv",yuv)


print("---hello-----")
src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
cv.namedWindow("input img",0)
cv.imshow("input img",src)
color_space_demo(src)
cv.waitKey(0)
cv.destroyAllwindows()
 
---hello----- 
                技术图片

 

 

 

 

2.使用inRange

作用:可以过滤指定的颜色,通过指定三个通道的值的范围 技术图片

 

 

In [5]:
import cv2 as cv
import numpy as np
#通过HSV提取视频中的相应颜色
def extrace_object():
    capture=cv.VideoCapture("./video.mp4")
    while True:
        ret,frame=capture.read()
        if ret==False:
            break
        
        hsv=cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        lower_hsv=np.array([35,43,46])
        upper_hsv=np.array([77,255,255])
        mask=cv.inRange(hsv,lowerb=lower_hsv,upperb=upper_hsv)
        #显示
        cv.imshow("video",frame)
       # cv.waitKey(100)
        #显示筛选后的图片,被选中的地方是白色,其他的是黑色
        cv.imshow("mask",mask)
        c=cv.waitKey(100)#延时100ms
        if c==27:
            #esc键退出
            break

            
extrace_object()
cv.waitKey(50)
cv.destroyAllwindows()

 

 

 输出视频如下:技术图片

 

 

3.通道的合并和分离

In [2]:
import cv2 as cv

print("---hello-----")
src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
x,y=src.shape[0:2]
print(src.shape)
cv.namedWindow("input img",0)
cv.imshow("input img",src)
#通道分离
b,g,r=cv.split(src)
#放缩
b=cv.resize(b,(x*3,y*3))
g=cv.resize(g,(x*3,y*3))
r=cv.resize(r,(x*3,y*3))

cv.imshow("blue",b)
cv.imshow("green",g)
cv.imshow("red",r)

#通道分离
src[:,:,1]=0#指定第2个通道全部为0
src=cv.merge([b,g,r])
cv.imshow("change image",src)

cv.waitKey(0)
cv.destroyAllWindows()
 
---hello-----
(96, 89, 3)
 

分离后:原图和3个通道的图

技术图片

 

 

 

合并后:原图和修改后的图的区别

技术图片

 

 

3.色彩空间

标签:ssi   attr   base   作用   erb   cloud   nload   dev   tle   

原文地址:https://www.cnblogs.com/AI-robort/p/13377830.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!