600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

时间:2021-11-27 06:26:07

相关推荐

python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在了,需要安装包的话可以去我的资源中下载使用,使用pip安装方式十分地便捷。

今天主要是基于opencv模块来调用笔记本的内置摄像头,然后从视频流中获取到人脸的图像数据用于之后的人脸识别项目,也就是为了构建可用的数据集。整个实现过程并不复杂,具体如下:

功能: Python opencv调用摄像头获取个人图片

使用方法:

启动摄像头后需要借助键盘输入操作来完成图片的获取工作

c(change): 生成存储目录

p(photo): 执行截图

q(quit): 退出拍摄

OpenCV简介

1、videoCapture()方法打开摄像

摄像头变量 cv2.VideoCapture(n) n为整数内置摄像头为0,若有其他摄像头则依次为1,2,3,...

cap=cv2.VideoCapture(0) 打开内置摄像头

2、cap.isOpened()方法判断摄像头是否处于打开,返回结果为:True、False

3、ret,img=cap.read() 读取图像

布尔变量,图像变量=cap.read()

4、cap.release() 释放摄像头

5、action=cv2.waitKey(n) 获取用户输入,同时可获取按键的ASCLL码值

__Author__:沂水寒城import osimport cv2import sysreload(sys)sys.setdefaultencoding('utf-8')def cameraAutoForPictures(saveDir='data/'):'''调用电脑摄像头来自动获取图片'''if not os.path.exists(saveDir):os.makedirs(saveDir)count=1 #图片计数索引cap=cv2.VideoCapture(0)width,height,w=640,480,360cap.set(cv2.CAP_PROP_FRAME_WIDTH,width)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,height)crop_w_start=(width-w)//2crop_h_start=(height-w)//2print 'width: ',widthprint 'height: ',heightwhile True:ret,frame=cap.read() #获取相框frame=frame[crop_h_start:crop_h_start+w,crop_w_start:crop_w_start+w] #展示相框frame=cv2.flip(frame,1,dst=None) #前置摄像头获取的画面是非镜面的,即左手会出现在画面的右侧,此处使用flip进行水平镜像处理cv2.imshow("capture", frame)action=cv2.waitKey(1) & 0xFFif action==ord('c'):saveDir=raw_input(u"请输入新的存储目录:")if not os.path.exists(saveDir):os.makedirs(saveDir)elif action==ord('p'):cv2.imwrite("%s/%d.jpg" % (saveDir,count),cv2.resize(frame, (224, 224),interpolation=cv2.INTER_AREA))print(u"%s: %d 张图片" % (saveDir,count))count+=1if action==ord('q'):breakcap.release() #释放摄像头cv2.destroyAllWindows() #丢弃窗口if __name__=='__main__': cameraAutoForPictures(saveDir='data/')

上述代码的运行环境需要是Python2,因为python2中才有reload方法,去掉那些语句就可以在Python3中执行了,我们在Python2的环境中执行结果截图如下:

我的保存路径是data,按q退出后,进入data文件夹下就可以看到自己的“靓照”了哈,好了数据集准备到此结束,接下来准备实战人脸识别。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。