当前位置: 首页 > news >正文

七、OpenCV中的视频的读写

文章目录

    • 一、视频的播放
    • 二、打开摄像头,并拍照
    • 三、人脸检测 + 自动拍照(检测到人脸时保存照片)

一、视频的播放

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 打开默认摄像头(0 表示第一个摄像头)VideoCapture cap(0);if (!cap.isOpened()) {cerr << "无法打开摄像头!" << endl;return -1;}// 获取摄像头帧率double fps = cap.get(CAP_PROP_FPS);cout << "Camera FPS: " << fps << endl;Mat frame;int imgCount = 0;while (true) {cap >> frame; // 捕获一帧if (frame.empty()) {cerr << "无法获取摄像头图像!" << endl;break;}imshow("Camera", frame);int key = waitKey(30);if (key == 27) { // ESC 退出break;} else if (key == 32) { // 空格键拍照string filename = "photo_" + to_string(imgCount++) + ".jpg";imwrite(filename, frame);cout << "已保存: " << filename << endl;}}cap.release();destroyAllWindows();return 0;
}

二、打开摄像头,并拍照

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 打开默认摄像头(0 表示第一个摄像头)VideoCapture cap(0);if (!cap.isOpened()) {cerr << "无法打开摄像头!" << endl;return -1;}// 获取摄像头帧率double fps = cap.get(CAP_PROP_FPS);cout << "Camera FPS: " << fps << endl;Mat frame;int imgCount = 0;while (true) {cap >> frame; // 捕获一帧if (frame.empty()) {cerr << "无法获取摄像头图像!" << endl;break;}imshow("Camera", frame);int key = waitKey(30);if (key == 27) { // ESC 退出break;} else if (key == 32) { // 空格键拍照string filename = "photo_" + to_string(imgCount++) + ".jpg";imwrite(filename, frame);cout << "已保存: " << filename << endl;}}cap.release();destroyAllWindows();return 0;
}

三、人脸检测 + 自动拍照(检测到人脸时保存照片)

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main() {// 加载人脸分类器(OpenCV 自带的 XML 文件)CascadeClassifier face_cascade;if (!face_cascade.load("haarcascade_frontalface_default.xml")) {cerr << "无法加载人脸检测模型!" << endl;return -1;}// 打开摄像头VideoCapture cap(0);if (!cap.isOpened()) {cerr << "无法打开摄像头!" << endl;return -1;}Mat frame, gray;while (true) {cap >> frame;if (frame.empty()) break;// 转灰度图(检测人脸时建议用灰度图)cvtColor(frame, gray, COLOR_BGR2GRAY);equalizeHist(gray, gray); // 直方图均衡化,提高检测效果// 检测人脸vector<Rect> faces;face_cascade.detectMultiScale(gray, faces,1.1,        // 缩放因子3,          // 最小邻居数0,          // 标志位Size(30, 30) // 最小检测目标);// 在原图上画矩形框for (size_t i = 0; i < faces.size(); i++) {rectangle(frame, faces[i], Scalar(0, 255, 0), 2); // 绿色框}imshow("Face Detection", frame);// 按 ESC 退出if (waitKey(30) == 27) break;}cap.release();destroyAllWindows();return 0;
}
http://www.dtcms.com/a/403241.html

相关文章:

  • ClipboardApp —— Mac 专属轻量级剪切板助手(开源)
  • 【开题答辩全过程】以 LoveEditing视频编辑社团网站为例,包含答辩的问题和答案
  • ARM芯片架构之CoreSight ROM Table 的SoC设计思路
  • 门户网站建设的平台搭建hello md5 wordpress
  • LeetCode 485.最大连续1的个数
  • 【综述】Processes at the intracellular scale 细胞内尺度的过程
  • 截取字符串
  • 【LeetCode热题100(29/100)】删除链表的倒数第 N 个结点
  • PyTorch 数据处理与可视化全攻略
  • 【LeetCode】912. 排序数组、手撕快速排序
  • 国内企业建站模板淘宝代运营去哪里找
  • VTK基础(05):VTK的渲染窗口嵌入到QT的控件当中
  • 深入解析 List 容器组件:构建高效、可交互的列表解决方案
  • 06.容器存储
  • 自己做的网站为何手机不能浏览快闪ppt模板免费下载
  • 动态内存管理 干货2
  • pdf转图片:pdf2image
  • 高校档案网站建设网站如何做成app
  • 画质及画面刷新率如何调整?正式升级!2K240帧原画级教程
  • 兰州网站的建设群晖搭建的wordpress外网访问
  • Redis常见八股文
  • Rust HashMap详解
  • 定制网站开发哪家强千旺crm客户管理系统
  • 2026年考研10月10日开始网上预报名
  • antd表格操作实现勾选
  • 性能测试-jmeter14-性能项目分析
  • 网站建设制作小程序开发卖友情链接的哪来那么多网站
  • react的依赖项数组
  • 购物网站下载长沙做网站比较好的公司
  • 大模型剪枝系列——基于梯度的剪枝