当前位置:   article > 正文

Opencv(C++)笔记--打开摄像头、保存摄像头视频_opencv打开摄像头

opencv打开摄像头

1--打开摄像头

关键代码语句:

① VideoCapture cam(0);

② cam.read(img);

③ imshow("cam", img);

  1. # include<opencv2/opencv.hpp>
  2. # include<cstdio>
  3. using namespace cv;
  4. using namespace std;
  5. int main(int argc, char *argv[]){
  6. // 打开摄像头
  7. VideoCapture cam(0);
  8. if (!cam.isOpened()){
  9. cout << "cam open failed!" << endl;
  10. getchar();
  11. return -1;
  12. }
  13. cout << "cam open success!" << endl;
  14. namedWindow("cam");
  15. Mat img;
  16. for(;;){
  17. cam.read(img); // 读帧
  18. if (img.empty()) break;
  19. imshow("cam", img); // 显示每一帧
  20. if (waitKey(5) == 'q') break; // 键入q停止
  21. }
  22. return 0;
  23. }

2--保存摄像头视频

关键代码:

①VideoWriter vw

②vw.open():fourcc指定编码格式(常见编码方式)、fps指定帧率、Size指定大小

③vw.write()

  1. # include<opencv2/opencv.hpp>
  2. # include<cstdio>
  3. using namespace cv;
  4. using namespace std;
  5. int main(int argc, char *argv[]){
  6. // 打开摄像头
  7. VideoCapture cam(0);
  8. if (!cam.isOpened()){
  9. cout << "cam open failed!" << endl;
  10. getchar();
  11. return -1;
  12. }
  13. cout << "cam open success!" << endl;
  14. namedWindow("cam");
  15. Mat img;
  16. VideoWriter vw;
  17. int fps = cam.get(CAP_PROP_FPS); // 获取原视频的帧率
  18. if (fps <= 0) fps = 25;
  19. vw.open("./out1120.avi",
  20. VideoWriter::fourcc('X', '2', '6', '4'),
  21. fps,
  22. Size(cam.get(CAP_PROP_FRAME_WIDTH),
  23. cam.get(CAP_PROP_FRAME_HEIGHT))
  24. );
  25. if (!vw.isOpened()){ // 判断VideoWriter是否正常打开
  26. cout << "videoWriter open failed!" << endl;
  27. getchar();
  28. return -1;
  29. }
  30. cout << "videoWriter open sucess!" << endl;
  31. for(;;){
  32. cam.read(img); // 读帧
  33. if (img.empty()) break;
  34. imshow("cam", img); // 展示当前帧
  35. /*
  36. 这里可以添加对当前帧的处理操作
  37. */
  38. vw.write(img); // 保存当前帧
  39. if (waitKey(5) == 'q') break; // 键入q停止
  40. }
  41. return 0;
  42. }

注:在Windows上执行上述代码可能会报以下错误:

解决方法:在输出的网址下载对应版本的库文件,放在执行文件.exe的同级目录即可,或者将该dll文件的路径添加到系统变量path中。

 结果:生成的out1120.avi可以正常播放;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/819693
推荐阅读
相关标签
  

闽ICP备14008679号