opencv摄像头用法

举报
风吹稻花香 发表于 2021/06/05 01:48:15 2021/06/05
【摘要】 python: 设置视频起始帧: cap.set(cv2.CAP_PROP_POS_FRAMES, keys_frame) # keys_frame为关键帧的序号   import cv2import numpy as numpycap=cv2.VideoCapture(0)#设置显示分辨率和FPS ,不设置的话会非常卡cap.set(cv2.CAP_PRO...

python:

设置视频起始帧:

cap.set(cv2.CAP_PROP_POS_FRAMES, keys_frame) # keys_frame为关键帧的序号

 


  
  1. import cv2
  2. import numpy as numpy
  3. cap=cv2.VideoCapture(0)
  4. #设置显示分辨率和FPS ,不设置的话会非常卡
  5. cap.set(cv2.CAP_PROP_FRAME_WIDTH,800)
  6. cap.set(cv2.CAP_PROP_FRAME_HEIGHT,600)
  7. cap.set (cv2.CAP_PROP_FPS,20)
  8. while cap.isOpened():
  9. ret,frame=cap.read()
  10. # cv2.flip(frame,frame,1)
  11. # frame1=None
  12. # cv2.flip(frame,frame1,1)
  13. #图像水平翻转
  14. frame=cv2.flip(frame,1)
  15. # gray=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)
  16. cv2.imshow('camare',frame[0:100,1:200])
  17. #按Q键退出
  18. if cv2.waitKey(1) & 0xFF==ord('q'):
  19. break
  20. #释放摄像头和卸载窗口
  21. cap.release()
  22. cv2.destroyAllWindows()

 

c++打开摄像头: 


  
  1. #include<opencv2/core/core.hpp>
  2. #include<opencv2/highgui/highgui.hpp>
  3. #include<opencv2/imgproc/imgproc.hpp>
  4. #include<iostream>
  5. using namespace std;
  6. using namespace cv;
  7. int main()
  8. {
  9. //定义VideoCapture对象选择摄像头
  10. VideoCapture capture(0);
  11. //判断是否出错
  12. if (!capture.isOpened())
  13. {
  14. cout << "some thing wrong" << endl;
  15. system("pause");
  16. return -1;
  17. }
  18. //获取视频相关信息---分辨率(宽、高)
  19. int frameHeight = capture.get(CV_CAP_PROP_FRAME_HEIGHT);
  20. int frameWidth = capture.get(CV_CAP_PROP_FRAME_WIDTH);
  21. cout << "this video is :" << frameWidth << "*" << frameHeight << endl;
  22. //定义writer对象
  23. VideoWriter outputVideo;
  24. outputVideo.open("save.avi", -1, 25.0, Size(frameWidth, frameHeight), true);
  25. //判断open writer对象是否出错
  26. if (!outputVideo.isOpened()){
  27. cout << "fail to open the videowriter" << endl;
  28. system("pause");
  29. return -1;
  30. }
  31. //循环读取一帧
  32. Mat frameImg;
  33. long nCount = 1;
  34. while (1){
  35. //输出当前帧数
  36. cout << "Current frame" << nCount << endl;
  37. capture >> frameImg;
  38. //判断是否读完
  39. if (!frameImg.empty()){
  40. imshow("frame", frameImg);
  41. }
  42. else{
  43. break;
  44. }
  45. //按Q退出
  46. if (char(waitKey(40) == 'q')){
  47. break;
  48. }
  49. outputVideo << frameImg;//将该帧写入文件
  50. nCount++;
  51. }
  52. //释放摄像头
  53. capture.release();
  54. return 0;
  55. }

 

 

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/54377981

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。