0x01 OpenCV安装
通过命令pip install opencv-python
安装
pip install opencv-python
0x02 示例
import cv2 cap = cv2.VideoCapture(0) #打开摄像头 while(1): # get a frame ret, frame = cap.read() # show a frame cv2.imshow("capture", frame) #生成摄像头窗口 if cv2.waitKey(1) & 0xFF == ord('q'): #如果按下q 就截图保存并退出 cv2.imwrite("D:/test.png", frame) #保存路径 break cap.release() cv2.destroyAllWindows()
ps:下面看下python 调用麦克风;摄像头;截屏;
# -*- coding: utf-8 -*- """ Created on Mon Jun 24 14:47:35 2019 @author: erio """ from PIL import Image,ImageGrab import cv2 import pyaudio import wave ''' #录音 input_filename = "record.wav" # 麦克风采集的语音输入 input_filepath = "E:" # 输入文件的path in_pathrec = input_filepath + input_filename #通俗解释就是wav文件路径 def get_audio(filepath): CHUNK = 256 #定义数据流块 FORMAT = pyaudio.paInt16 #量化位数(音量级划分) CHANNELS = 1 # 声道数;声道数:可以是单声道或者是双声道 RATE = 8000 # 采样率;采样率:一秒内对声音信号的采集次数,常用的有8kHz, 16kHz, 32kHz, 48kHz, 11.025kHz, 22.05kHz, 44.1kHz RECORD_SECONDS = 10 #录音秒数 WAVE_OUTPUT_FILENAME = filepath #wav文件路径 p = pyaudio.PyAudio() #实例化 stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) # print("*"*10, "开始录音:请在5秒内输入语音") frames = [] #定义一个列表 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): #循环,采样率11025 / 256 * 5 data = stream.read(CHUNK) #读取chunk个字节 保存到data中 frames.append(data) #向列表frames中添加数据data # print(frames) # print("*" * 10, "录音结束\n") stream.stop_stream() stream.close() #关闭 p.terminate() #终结 wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') #打开wav文件创建一个音频对象wf,开始写WAV文件 wf.setnchannels(CHANNELS) #配置声道数 wf.setsampwidth(p.get_sample_size(FORMAT)) #配置量化位数 wf.setframerate(RATE) #配置采样率 wf.writeframes(b''.join(frames)) #转换为二进制数据写入文件 wf.close() #关闭 get_audio(in_pathrec) ''' #截屏 input_filenamescr = "screen.jpg" input_filepath = "E:" in_pathscr = input_filepath + input_filenamescr def get_screen(filepath): img = ImageGrab.grab() img.save(filepath) get_screen(in_pathscr) ''' #拍照 input_filenamecam = "camera.jpg" input_filepath = "E:" in_pathcam = input_filepath + input_filenamecam def get_camera(filepath): cap=cv2.VideoCapture(0) ret,frame = cap.read() i=0; cv2.imwrite(filepath,frame) cap.release() cv2.destroyAllWindows() get_camera(in_pathcam) ''' ''' #录制视频 cap = cv2.VideoCapture(0)#创建一个 VideoCapture 对象 flag = 1 #设置一个标志,用来输出视频信息 num = 1 #递增,用来保存文件名 while(cap.isOpened()):#循环读取每一帧 ret_flag, Vshow = cap.read() #返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置一个则变成一个tumple包含bool和图片 cv2.imshow("Capture_Test",Vshow) #窗口显示,显示名为 Capture_Test k = cv2.waitKey(1) & 0xFF #每帧数据延时 1ms,延时不能为 0,否则读取的结果会是静态帧 if k == ord('s'): #若检测到按键 ‘s',打印字符串 cv2.imwrite("D:/pycharmthings/IMF/getpics/"+ str(num) + ".jpg", Vshow) print(cap.get(3)); #得到长宽 print(cap.get(4)); print("success to save"+str(num)+".jpg") print("-------------------------") num += 1 elif k == ord('q'): #若检测到按键 ‘q',退出 break cap.release() #释放摄像头 cv2.destroyAllWindows()#删除建立的全部窗口 '''
总结
以上所述是小编给大家介绍的Python OpenCV 调用摄像头并截图保存功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】