OpenCV简单应用(一、摄像头拍照)

您所在的位置:网站首页 拍照搜题开启摄像头功能 OpenCV简单应用(一、摄像头拍照)

OpenCV简单应用(一、摄像头拍照)

2024-07-11 17:05| 来源: 网络整理| 查看: 265

1.首先安装OpenCV,当然所用电脑要有摄像头,且接入网络。比较简单粗暴的做法是到Python所在的目录下,.\Scripts下运行

pip install opencv-python

2.以下代码是开启摄像头,按任意键退出:

import cv2 #打开摄像头(只有一个摄像头则编号为0,若有2个则依次为0,1) camera = cv2.VideoCapture(0) #创建窗口"Video Cam" cv2.namedWindow('Video Cam', cv2.WINDOW_NORMAL) #持续间隔1ms等待按键,若有按键跳出循环 while cv2.waitKey(1)==-1: #读取摄像头数据 success, frame =camera.read() # 显示在窗口"Video Cam"上 cv2.imshow('Video Cam', frame) #断开摄像头 camera.release() #释放所有窗口 cv2.destroyAllWindows()

3.waitKey(delay)

delay为延时时间,也可以看做间隔时间,单位为毫秒,0表示永远等待。返回值为ASCII键值,没有任何按键时返回值为-1。把cv2.waitKey(1)==-1改为cv2.waitKey(1)!=27,则可实现按ESC键时退出,否则保持状态不变。

4.cv2.imwrite(file,img,num)

用于保存一个图像。第一个参数file是要保存的文件名,第二个参数img是要保存的图像。第三个参数num可选,它针对特定的格式:对于jpeg,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第三个参数表示的是压缩级别,默认为3。

修改以上代码,实现以下功能:按空格键截图保存,文件名依次为1.jpg,2.jpg,3.jpg......,按ESC键退出,其它键不响应。所有代码如下:

import cv2 camera = cv2.VideoCapture(0) #打开摄像头(只有一个摄像头则编号为0,若有2个则依次为0,1) cv2.namedWindow('Video Cam', cv2.WINDOW_NORMAL) #创建窗口"Video Cam" i=0 while cv2.waitKey(1)!=27: #ESC键 持续间隔1ms等待按键,若有按键跳出循环 success, frame =camera.read() #读取摄像头数据 cv2.imshow('Video Cam', frame) # 显示在窗口"Video Cam"上 if cv2.waitKey(1)==32: #空格键存图像 i=i+1 cv2.imwrite(str(i)+".jpg",frame) #存图像 camera.release() #断开摄像头 cv2.destroyAllWindows() #释放所有窗口

5.若有两个或者更多的摄像头,则需创建更多的窗口,如下:

import cv2 #打开摄像头(只有一个摄像头则编号为0,若有2个则依次为0,1) camera = cv2.VideoCapture(0) camera1 = cv2.VideoCapture(1) #创建窗口"Video Cam","Video Cam1", cv2.namedWindow('Video Cam', cv2.WINDOW_NORMAL) cv2.namedWindow('Video Cam1', cv2.WINDOW_NORMAL) #持续间隔1ms等待按键,若有按键跳出循环 while cv2.waitKey(1)==-1: #读取摄像头数据 success, frame =camera.read() success1, frame1 =camera1.read() # 显示在窗口"Video Cam","Video Cam1"上 cv2.imshow('Video Cam', frame) cv2.imshow('Video Cam1', frame1) #断开摄像头 camera.release() camera1.release() #释放所有窗口 cv2.destroyAllWindows()

笔记本电脑一般都自带摄像头,若需增加或台式机均需另购,建议选用USB接口无驱型。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3