opencv知识点笔记

1.调用摄像头实时处理

def detect():
    camera = cv2.VideoCapture(0)      #读取摄像头,0代表手提电脑自带的摄像头,若改成1,2,3...则可以调用其他摄像头

    while True:
        # 读取当前帧

        ret, frame = camera.read()



        img = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

        im = decodeDisplay(img,camera)


        cv2.imshow("camera", im)
        if cv2.waitKey(5) is 27:                           #按键盘的ESC键可退出,同时停顿一微秒
            break
        if cv2.getWindowProperty('camera',cv2.WND_PROP_AUTOSIZE) < 1:        #用鼠标点击窗口退出键实现退出循环
            break

    camera.release()

    cv2.destroyAllWindows()
    

摘自python-opencv实现调用实时摄像头进行图像处理
cv2.VideoCapture()
一、语法:cap = cv2.VideoCapture(0)
说明:参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为视频所在路径路径,例如:cap=cv2.VideoCapture(‘video.mp4’)

二、语法:cap.isOpened()
说明:判断视频对象是否成功读取,成功读取视频对象返回True。

三、语法:ret,frame = cap.read()
说明:按帧读取视频,返回值ret是布尔型,正确读取则返回True,读取失败或读取视频结尾则会返回False。frame为每一帧的图像,这里图像是三维矩阵,即frame.shape = (640,480,3),读取的图像为BGR格式。

四、语法:key = cv2.waitKey(1)
说明:等待键盘输入,参数1表示延时1ms切换到下一帧,参数为0表示显示当前帧,相当于暂停。

  1. cv2.imshow()函数需要两个输入,一个是图像窗口的名字即title,一个是所展示图片的像素值矩阵。

3.opencv中有多种色彩空间,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8种,使用中经常要遇到色彩空间的转化,以便生成mask图等操作。
cv2.cvtColor( )进行色彩空间的转换:
image_hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)#用这个函数把图像从RGB转到HSV夜色空间,注意是BGR2HSV,因为在opencv中默认的颜色空间是BGR。

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#将图片转化成灰度
hsv = cv2.cvtColor(image,cv2.COLOR_BGR2HSV)#将图片转化成HSV格式

这里只是表示一个通道的转换,例如:如果你用cv2读取了一幅图片,读进去的是BGR格式的,但是在保存图片时,要保存为RGB格式的

 rgb_image =cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
 rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

4.滑动条
cv2.getTrackbarPos() 函数的一个参数是滑动条的名字,第二个参数是滑动条被放置窗口的名字,第三个参数是滑动条的默认位置。
第四个参数是滑动条的最大值,第五个函数是回调函数,每次滑动条的滑动都会调用回调函数。
回调函数通常都会含有一个默认参数,就是滑动条的位置。在本例中这个函数不用做任何事情,我们只需要pass 就可以了。
滑动条的另外一个重要应用就是用作开关按钮,如例子中的最后一个就是作为开关,只有为NO的时候其他三个起作用。

#滑动条
    cv2.createTrackbar("minH", "skin", 15, 180, nothing)
    cv2.createTrackbar("maxH", "skin", 25, 180, nothing)
	minH=cv2.getTrackbarPos("minH", 'skin')
    maxH=cv2.getTrackbarPos("maxH", 'skin')

你可能感兴趣的:(python,图像处理,opencv)