OpenCV简单应用(一、摄像头拍照) |
您所在的位置:网站首页 › 拍照搜题开启摄像头功能 › OpenCV简单应用(一、摄像头拍照) |
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 |