任务目标:

使用python调用摄像头,将摄像头得到画面进行图像处理(cv2)。

代码实现结果:

导入图像处理的包:

import cv2

摄像头打开:

#获取摄像头
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
#打开摄像头
cap.open(0)

获取图像,并进行处理:

while cap.isOpened():
    #获取画面
    flag, frame = cap.read()

    ######################画面处理1##########################
    #灰度图
    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    frame = cv2.medianBlur(frame, 5)
    img_blur = cv2.GaussianBlur(frame, ksize=(21, 21),
                                sigmaX=0, sigmaY=0)
    frame = cv2.divide(frame, img_blur, scale=255)

    #画面显示
    cv2.imshow('mytest', frame)
    #设置退出按钮
    key_pressed = cv2.waitKey(100)
    print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束')
    if key_pressed == 27:
        break

关闭摄像头:

#关闭摄像头
cap.release()
#关闭图像窗口
cv2.destroyAllWindows()

完整代码:

import cv2

#获取摄像头
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)
#打开摄像头
cap.open(0)

while cap.isOpened():
    #获取画面
    flag, frame = cap.read()

    ######################画面处理1##########################
    #灰度图
    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
    frame = cv2.medianBlur(frame, 5)
    img_blur = cv2.GaussianBlur(frame, ksize=(21, 21),
                                sigmaX=0, sigmaY=0)
    frame = cv2.divide(frame, img_blur, scale=255)

    #画面显示
    cv2.imshow('mytest', frame)
    #设置退出按钮
    key_pressed = cv2.waitKey(100)
    print('单机窗口,输入按键,电脑按键为',key_pressed,'按esc键结束')
    if key_pressed == 27:
        break

#关闭摄像头
cap.release()
#关闭图像窗口
cv2.destroyAllWindows()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐