python+opencv 色彩转换,分离与合并+视频提取及利用inRange 提取锁定颜色 B站245

python+opencv色彩转换,分离与合并

import cv2 as cv
import numpy as np

#色彩转换
def color_change(image):  #色彩转换
    gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)
    cv.imshow('gray',gray)
    hsv=cv.cvtColor(image,cv.COLOR_BGR2HSV)
    cv.imshow('hsv',hsv)
    yuv=cv.cvtColor(image,cv.COLOR_BGR2YUV)
    cv.imshow('yuv',yuv)

    ycrcb=cv.cvtColor(image,cv.COLOR_BGR2YCrCb)
    cv.imshow('ycrcb',ycrcb)


img=cv.imread('D:/fengge.jpg')  #0 图片变为灰色
cv.imshow('image',img)
#通道分离成三个通道
b,g,r = cv.split(img)
cv.imshow('b',b)
cv.imshow('g',g)
cv.imshow('r',r)
img[: ,: , 2]= 2  #通道转变
img=cv.merge([b,g,r])#通道合并
cv.imshow('change',img)


k = cv.waitKey(0)

视频提取与 利用inRange 提取锁定颜色

import cv2 as cv
import numpy as np
def extract_object():
    capture=cv.VideoCapture('D:/viseo.MP4')
    while (True):
        ret, fet = capture.read()
        if ret == False:
            break;
        hsv=cv.cvtColor(fet,cv.COLOR_BGR2HSV)
        lower_hsv = np.array([100,43,46])
        higer_hsv = np.array([124,255,255])

        mask=cv.inRange(hsv,lowerb=lower_hsv,upperb=higer_hsv) #用inRange提取蓝颜色,
        dst=cv.bitwise_and(fet,fet,mask=mask)  #用与 进行颜色提取蓝颜色即原来的蓝色和白色 与 的话,蓝色就显示出来了
        cv.imshow('viseo',fet)
        cv.imshow('mask',mask)
        cv.imshow('dst',dst)
        c = cv.waitKey(40)
        if c==27:
            break


extract_object()

从电脑自带摄像头中获取视频

import cv2
import numpy as np
cap=cv2.VideoCapture(0)#0就是从自己电脑设备,若为1 则是在其他设备
while(True):
    ret,frame=cap.read()
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1)&0xFF == ord('9'):
        break
cap.release()
发布了31 篇原创文章 · 获赞 0 · 访问量 2675

猜你喜欢

转载自blog.csdn.net/kaxiaokui/article/details/104791396