qt下使用opencv读取视频

2023-05-16

测试环境:ubuntu18.04+opencv4.2+Qt

一个基础的opencv读取视频并显示demo。

video.pro文件:

SOURCES += main.cpp

INCLUDEPATH += /usr/local/opencv4/include/opencv4 \
               /usr/local/opencv4/include/opencv4/opencv2

LIBS += -L/usr/local/opencv4/lib -lopencv_freetype -lopencv_highgui -lopencv_videoio -lopencv_imgproc -lopencv_core -lopencv_imgcodecs -lopencv_video

main.cpp文件:

#include <QCoreApplication>
#include <QMetaType>
#include <QDebug>
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qRegisterMetaType<cv::Mat>(cv::Mat&);

    cv::VideoCapture cap;
    cap.open("./data/videos/TownCentreXVID.avi");
    if(!cap.isOpened())
    {
        qDebug() << " ===> please check the video path.";
        return 0;
    }

    int width = cap.get(cv::CAP_PROP_FRAME_WIDTH);
    int height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);

    cv::Mat frame;
    int nFrame = 0;

    cv::namedWindow(video, 0);
    cv::resizeWindow(video, 960, 480);
    cv::moveWindow(video, 200, 100);

    while(true)
    {
        int frame_id = cap.get(cv::CAP_PROP_POS_FRAMES);
        std::cout <<  " frame_id = "  << frame_id << std::endl;

        double t = (double)cv::getTickCount();
        cap.read(frame);
        if (frame.empty())
        {
            qDebug() <<  "===> image empty.";
            continue;
        }
        nFrame += 1;

        t = ((double)cv::getTickCount() - t) * 1000 / cv::getTickFrequency();
        cout <<  "nFrame = " << nFrame << ", Decode time for a frame :"  << t << "ms" << endl;

        cv::imshow(video, frame);
        cv::waitKey(10);
    }
    cap.release();
    return a.exec();
}

结果:

 传送门:qt多线程系列文章目录

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt下使用opencv读取视频 的相关文章

  • 收据褪色部分可以恢复吗?

    我有一些包含一些扫描收据的文件 我需要使用 OCR 从中提取文本 由于收据上打印的文字在一段时间后会褪色 导致收据上的某些文字不清晰 影响OCR结果 褪色单词的一些示例 有什么方法可以恢复褪色的部分 以便提高 OCR 结果吗 我在OpenC
  • OpenCV findContours 破坏源图像

    我编写了一个在单通道空白图像中绘制圆形 直线和矩形的代码 之后 我只需找出图像中的轮廓 就可以正确获取所有轮廓 但找到轮廓后 我的源图像变得扭曲 为什么会出现这种情况 任何人都可以帮我解决这个问题 我的代码如下所示 using namesp
  • 使用 openCV 和 python 检测物体

    我正在尝试使用 OpenCV 和 Python 检测下图中的白点 我尝试使用函数 cv2 HoughCircles 但没有成功 我需要使用不同的方法吗 这是我的代码 import cv2 cv import numpy as np impo
  • 查找彼此接近的对象边界

    我正在研究一个计算机视觉问题 其中问题的第一步是找到物体彼此靠近的位置 例如 在下图中 我感兴趣的是找到灰色标记的区域 Input Output 我目前的方法是首先反转图像 然后通过侵蚀进行形态梯度跟随 然后删除一些不感兴趣的轮廓 脚本如下
  • 计算两个描述符之间的距离

    我正在尝试计算已计算的两个描述符之间的距离 欧几里得或汉明 问题是我不想使用匹配器 我只想计算两个描述符之间的距离 我正在使用 OpenCV 2 4 9 并且我的描述符存储在 Mat 类型中 Mat descriptors1 Mat des
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • Opencv matchTemplate 和 np.where():仅保留唯一值

    继带有马里奥硬币的 opencv 教程 https opencv python tutroals readthedocs io en latest py tutorials py imgproc py template matching p
  • 使用opencv计算深度视差图

    我无法使用 opencv 从视差图计算深度 我知道两个立体图像中的距离是用以下公式计算的z baseline focal disparity p 但我不知道如何使用地图计算视差 我使用的代码如下 为我提供了两个图像的视差图 import n
  • 在加载“cv2”二进制扩展期间检测到递归

    我有一个小程序 在 pyinstaller 编译后返回 opencv 错误 但无需编译即可工作 我在 Windows 10 上使用 Python 3 8 10 Program 导入 pyautogui将 numpy 导入为 np导入CV2
  • 使用Python的工业视觉相机[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • BASH 脚本编译多个 C++ 文件 - OpenCV

    请参见在C 和OpenCV中调用其他文件中的函数 https stackoverflow com questions 24442836 call functions in other files in c and opencv 对于最初的问
  • 当我将鼠标移到 Mat 关键字上时,Visual Studio 2017 冻结(OpenCv 3.4.1)

    我想在 Visual Studio 2017 中开发 openCv 项目 我下载了 opencv 预构建库并进行了必要的设置 那是 1 我添加了系统路径 build x64 vc14 bin 2 在 Visual Studio 中的项目属性
  • 仅获取图像中的外部轮廓

    我有这段代码 可以在图像中绘制轮廓 但我只需要外部轮廓 import cv2 import numpy as np camino C Users Usuario Documents Deteccion de Objetos 123 jpg
  • ffmpeg AVFrame 到 opencv Mat 转换

    我目前正在开发一个使用 ffmpeg 解码接收到的帧的项目 解码后 我想将 AVFrame 转换为 opencv Mat 帧 以便我可以在 imShow 函数上播放它 我拥有的是字节流 我将其读入缓冲区 解码为 AVFrame f fope
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • OpenCV IP 相机应用程序崩溃 [h264 @ 0xxxxx] 访问单元中缺少图片

    我在 cpp 中有一个 opencv 应用程序 它使用 opencv 的简单结构捕获视频流并将其保存到视频文件中 它与我的网络摄像头完美配合 但是 当我运行它从 IP 摄像机捕获流时 它可能会在大约十秒后崩溃 我的编译命令是 g O3 IP
  • 使用 OpenCV 和/或 Numpy 对两个图像进行 Alpha 混合 [重复]

    这个问题在这里已经有答案了 我想将一个填充纯色的半透明矩形添加到已加载的半透明 PNG 中 这是我正在使用的输入图像示例 该图像加载了标准cv2 IMREAD UNCHANGED标志 以便完美保留 alpha 通道 该输入图像存储在imag
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 将 4 通道图像转换为 3 通道图像

    我正在使用 OpenCV 2 4 6 我正在尝试将 4 通道 RGB IplImage 转换为 4 通道 HSV 图像 下面是我的代码 给出错误 OpenCV 错误 未知函数断言失败 我认为 cvCvtColor 支持 3 通道图像 有没有

随机推荐

  • ROS wrapper for the ZED SDK (ZED相机的ROS驱动包的使用)

    前言 ZED相机 High Resolution and High Frame rate 3D Video Capture Depth Perception indoors and outdoors at up to 0 5 xff5e 2
  • 杭州电子科技大学全国计算机排名,杭电排名为什么比211还高,杭州电子科技大学是211吗...

    所谓 双非 高校 xff0c 在以往一般指的是非985和211高校 xff0c 而现在一般指非双一流 一流大学建设和一流学科建设 高校 今天笔者给大家介绍的这所高校 xff0c 就是一所典型的 双非 高校 xff0c 然而 xff0c 在往
  • 服务器主板cpld芯片作用,CPLD的工作原理是什么呢?

    CPLD 复杂可编程逻辑器件 xff0c 它是从PAL和GAL器件发展出来的器件 xff0c 相对而言规模大 xff0c 结构复杂 xff0c 属于大规模集成电路范围 它的工作方式和原理与FPGA 现场可编程门阵列 相类似 xff0c 都是
  • 服务器维护 灵魂兽,魔兽世界7.0新灵魂兽麋鹿捕捉方法

    可盘游戏BT盒子是一款功能十分强大的游戏福利软件 xff0c 这里汇聚了全网最热门最好玩的手游 大家不仅可以在这里获得各种折扣福利 xff0c 还能下载游戏 类型 xff1a 辅助工具 大小 xff1a 17 42M 语言 xff1a 简体
  • 换热站无线通讯服务器,供暖换热站的手机APP智能调控研究

    摘要 xff1a 我国目前集中供热需求量较大 每年消耗大量的煤炭 电力 根据2014年统计数据 我国集中供热能耗平均在20至25公斤标煤 m 2 而欧洲为10至15公斤标煤 m 2 1 可见 我国集中供热能耗高出同纬度甚至更高纬度的欧洲国家
  • 虚拟主机ip和服务器ip一样,虚拟主机独立ip和服务器的独立ip区别-

    虚拟从机独立ip和办事器的独立ip区别是什么 xff1f 从IP利用上来看 xff0c 虚拟从机分派的独立IP和办事器的独立IP并没无什么区别 xff0c 都是一样的拜候感化 虽然虚拟从机是从办事器上划分出来的一部门空间 xff0c 不外度
  • TX2系统镜像制作及烧写

    可以通过制作镜像的方法来快速复制板子的环境 xff0c 达到快速部署的目的 tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article details 106933180 P
  • tx2刷机-安装环境

    tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article details 106933180 1 解压 Linux Driver Package xff0c 生成文件夹目录
  • TX2下查看CPU GPU 内存使用率

    声明 xff1a 文章仅作知识整理 分享 xff0c 如有侵权请联系作者删除博文 xff0c 谢谢 xff01 tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article d
  • onnxsim-让导出的onnx模型更精简

    用torch导出的模型有时候参数过多 xff0c 不利于查看 查找资料onnxsim可以简化模型 xff0c 让显示更加自然 如 xff0c reshap层的导出 xff0c 红框中细节参数被显示出现 默认导出 xff1a 使用onnxsi
  • conda国内源-持续更新

    清华源 中科大源大部分时间能用 xff0c 但没事也会被封 最近发现的北外源挺好用 推荐使用 xff1a 北外镜像 xff08 推荐 xff09 xff1a conda config add channels https mirrors b
  • (三)PX4在gazebo中仿真障碍物检查与路径规划【完全SIL】

    首先完成 ROS PX4 firmware gazebo的环境配置 可以参考上一篇博客 二 PX4编译与gazebo仿真环境的搭建 ubuntu14 amp ubuntu16 安装 障碍物检测与路径规划的一些依赖库 span class h
  • python使用tcp传输图像

    使用tcp进行图像网络收发 主要分为两个部分 xff1a 1 服务端 step1 启动服务 xff0c 等待客户端连接 xff1b step2 等待并接受客户端数据 xff1b step3 接收的二进制流解码 xff0c 显示 xff1b
  • apt-get install 报错:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

    sudo apt get install安装软件时 xff0c 出现错误 无法修正错误 xff0c 因为您要求某些软件包保持现状 xff0c 就是它们破坏了软件包间的依赖关系 提示已经很明显了 xff0c 依赖关系问题 百度后 xff0c
  • 数据增强(Data Augmentation)常用方法汇总

    1 数据增强的作用 1 xff09 避免过拟合 当数据集具有某种明显的特征 xff0c 例如数据集中图片基本在同一个场景中拍摄 xff0c 使用Cutout方法和风格迁移变化等相关方法可避免模型学到跟目标无关的信息 2 xff09 提升模型
  • uint8_t和char的相互转换

    uint8 t 和char 的相互转换以及uint8 t 和int16 t 的相互转换 实际应用需要 xff0c 实现uint8 int16 t int32 t的按字节传输 xff0c 实现发送和接收功能 如int16 t xff0c 需要
  • c++ sleep函数头文件

    c 43 43 11标准 xff0c 提供线程休眠函数 xff1a using namespace std chrono literals std this thread sleep for 5 线程休眠5ms 1 windows下支持 x
  • shell指令自带sudo密码

    希望在sh脚本文件中的shell指令中使用sudo命令 xff0c 需要自动输入密码以确保顺序执行 有两种方式可以实现 xff1a 1 将密码以参数形式追加到脚本 使用管道 xff1a echo 密码 sudo S shell命令 如 xf
  • qt 线程同步-互斥量(Qmutex)

    在多线程应用程序中 xff0c 由于多个线程的存在 xff0c 线程之间可能需要访问同一个变量 xff0c 或一个线程需要等待另外一个线程完成某个操作后才产生相应的动作 xff0c 这时候就需要做线程同步 所以 xff0c 需要线程同步情况
  • qt下使用opencv读取视频

    测试环境 xff1a ubuntu18 04 43 opencv4 2 43 Qt 一个基础的opencv读取视频并显示demo video pro文件 xff1a SOURCES 43 61 main cpp INCLUDEPATH 43