【OpenGL】读取视频并渲染

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍读取视频并渲染。
学其所用,用其所学。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • :smirk:OpenGL读取视频并渲染

😏OpenGL读取视频并渲染

// main.cpp
#include <iostream>
#include <GL/glut.h>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;Mat videoFrame; // 存储当前视频帧
GLuint textureID; // 纹理 IDvoid display()
{glClear(GL_COLOR_BUFFER_BIT);// 将视频帧数据绑定到纹理对象上glBindTexture(GL_TEXTURE_2D, textureID);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, videoFrame.cols, videoFrame.rows, 0, GL_BGR_EXT, GL_UNSIGNED_BYTE, videoFrame.data);// 渲染纹理glBegin(GL_QUADS);glTexCoord2f(0.0, 1.0); glVertex2f(-1.0, -1.0);glTexCoord2f(1.0, 1.0); glVertex2f(1.0, -1.0);glTexCoord2f(1.0, 0.0); glVertex2f(1.0, 1.0);glTexCoord2f(0.0, 0.0); glVertex2f(-1.0, 1.0);glEnd();glutSwapBuffers();
}void updateFrame(int value)
{// 读取下一帧视频// 这里使用了OpenCV库来读取视频文件,确保你已经安装了OpenCV并正确链接它VideoCapture cap("test.mkv");cap >> videoFrame;glutPostRedisplay();glutTimerFunc(1000 / 30, updateFrame, 0); // 设置下一帧更新的时间间隔,这里假设视频的帧率是30fps
}int main(int argc, char** argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowSize(800, 600);glutCreateWindow("Video Rendering");// 初始化OpenGLglMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-1, 1, -1, 1, -1, 1);glMatrixMode(GL_MODELVIEW);glEnable(GL_TEXTURE_2D);glGenTextures(1, &textureID);glBindTexture(GL_TEXTURE_2D, textureID);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);cout << "start display" << endl;glutDisplayFunc(display);cout << "start updateFrame" << endl;glutTimerFunc(0, updateFrame, 0);glutMainLoop();return 0;
}

编译:g++ -o video_rendering main.cpp -lglut -lGL -lGLU pkg-config --cflags --libs opencv``

效果如下:

在这里插入图片描述

在这里插入图片描述

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27900.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity rtsp 视频渲染(一)

unity unity 可以说是一个不错的工具&#xff0c;建立三维的场景非常方便&#xff0c;下面我们建立一个三维的场景&#xff0c;并且在三维的场景中和场景外分别建立系统去播放视频。所谓场景内就是在三维中播放视频&#xff0c;场景外就是在三维场景前表面的二维平面中播放视频…

Unity 视频渲染插件AVPro Movie Capture 简易教程

随着Unity 的 功能日益强大&#xff0c;Unity5的发布使的Unity的图形渲染能力达到了一个新的层次&#xff0c;全局光照的加入&#xff0c;各种新特性的加入&#xff0c;使视频的实时渲染不再是天方夜谈&#xff0c;Unity5发布时的演示视频《Adam》&#xff0c;画质惊人。Unity在…

最新 |《未来简史》作者赫拉利 演讲:AI不需要意识就可以毁灭人类文明 (全文+视频)...

作者&#xff1a;城主 | 编辑&#xff1a;腾讯新闻 郝博阳 编者导语&#xff1a; 最近两个月&#xff0c;自从《暂停AI声明书》发布后&#xff0c;我们看到了诸多AI行业内的专家大佬隔空辩论AI的潜在威胁和治理方法&#xff0c;场面一时无两&#xff0c;基本上把技术路径上AI可…

大模型基础知识 - 语言模型及其演进 公开版

本文为作者内部分享文档&#xff0c;由于不涉敏可以公开&#xff0c;分享本身是课程形式&#xff0c;有什么疑问欢迎在评论区留言。 开场白 人工智能发展到现在&#xff0c;在2个重要领域取得了重大突破&#xff0c;有望达到人类水平&#xff1a; 计算机视觉 &#xff08;Com…

使用ChatGPT帮助快速读书:《Rise of the Robots: Technology and the Threat of a Jobless Future》

有了ChatGPT的帮助&#xff0c;读书也快了&#xff0c;英文版的书也可以快速了解其主要内容&#xff0c;不知道这样囫囵吞枣的阅读有没有其它副作用&#xff0c;先读了几本再说。 《Rise of the Robots: Technology and the Threat of a Jobless Future》这本书我没找到中文版翻…

揭秘ChatGPT爆火的背后真相:学编程已经成为必选项!

这一阵最热门的话题&#xff0c;莫过于人工智能新选手—— ChatGPT&#xff0c;在推出后只用了两个月就积累了1亿用户&#xff01;它的出现在科技圈掀起了一阵“惊涛骇浪”&#xff0c;有人称ChatGPT的意义&#xff0c;堪比当年蒸汽机的出现&#xff0c;它足以爆发新一轮的“工…

【ChatGPT】AI 2.0 时代:拥抱先进的生产力

AI 2.0 时代:拥抱先进的生产力 目录 AI 2.0 时代:拥抱先进的生产力 康波周期是什么? 人类工业革命以来的近现代史 先进生产力的变成了信息与数据 AI科技改变世界

GraphPad Prism 科研绘图(一)

打开GraphPad软件&#xff0c;可以在左侧选择要绘制的图表类型&#xff0c;也可以在左下方直接打开现有的文件 graphpad的工作流程是&#xff0c;首先你需要输入你的数据&#xff0c;也就是你的实验原始数据&#xff0c;叫做Data Table 然后你可以对你的原始数据进行分析&…

科研绘图软件大全

作为材料&#xff0c;化学&#xff0c;环境&#xff0c;物理领域的科研工作者&#xff0c;你是否常为如何表达自己的思想而苦恼? 作为学术论文创造者&#xff0c;你是否为论文中图文单一而叹气? 在这里&#xff0c;推荐给你几款常用科研绘图软件&#xff0c;让你论文从此成为…

【知识图谱】知识图谱的本质是什么?

持续总结更新中 一句话总结知识图谱人工智能从感知到认知什么是知识&#xff1f;什么是先验知识&#xff1f;什么是知识表示&#xff1f;知识图谱的基本组成要素&#xff1f;什么是概念&#xff1f;什么是实体&#xff1f;什么是本体&#xff1f;谈谈本体构建什么是知识图谱的s…

【毕业季】毕业设计避坑指南

文章目录 前言&#x1f34a;缘由毕业季&#xff0c;毕业设计分手季 &#x1f3af;主要目标实现4大重点 &#x1f348;猜你想问如何与狗哥联系进行探讨1.关注公众号【JavaDog程序狗】2.踩踩狗哥博客 &#x1f36f;猜你喜欢文章推荐 正文1.毕业设计如何选题2.毕业设计如何去写3.网…

文心一言“插刀”百度?

在ChatGPT出世半年&#xff0c;爆火将近2月后&#xff0c;中国版AI大模型终于崭露头角。 3月16日&#xff0c;百度于北京总部召开新闻发布会&#xff0c;主题围绕基于文心大模型技术生成式对话产品——文心一言&#xff0c;这也预示着中国首个类ChatGPT产品面世。在其正式推出前…

MSRA王晋东:大模型时代,普通人的科研何去何从

王晋东 投稿量子位 | 公众号 QbitAI 最近&#xff0c;电子工业出版社送了我一本《一本书读懂AIGC&#xff1a;ChatGPT、AI绘画、智能文明与生产力变革》&#xff0c;不禁感叹&#xff1a;现在连写书都这么卷了&#xff01; 要知道&#xff0c;ChatGPT 于去年11月30日刚刚发布、…

ZadigX 发布:价值驱动一切 链接最酷玩家

Zadig 徜徉开源大漠&#xff0c;用爱发电两年之际&#xff0c;低调发布企业版 ZadigX&#xff0c;广泛链接一切价值创造者。发布会将在 2023 年 4 月 27 日 以全线上形式举办&#xff0c;特邀一位神秘总裁&#xff0c;两大车企总监&#xff0c;十大云原生盟主联创/CEO&#xff…

我是普通人,我居然可以这样借力ChatGPT?(此文不卖课)

昨天写了一篇《程序员&#xff0c;如何借力ChatGPT&#xff1f;》&#xff0c;分享了借助AI&#xff1a; &#xff08;1&#xff09;撰写通用代码&#xff1b; &#xff08;2&#xff09;协助寻找BUG&#xff1b; &#xff08;3&#xff09;协助优化算法性能&#xff1b; &…

没有ChatGPT和new bing ?加入文心一言!

前言: 话虽说ChatGPT和newbing已经席卷网络AI语言&#xff0c;当了现在ai的头号老大&#xff0c;但是那两个都是需要梯子才能使用&#xff0c;ChatGPT还需要付费&#xff0c;所以还是有很多童鞋是没有加入使用ai大军的&#xff0c;那我们不妨看一下这个:文心一言。 步入正题…

android自定义涂鸦,Android Studio:小Demo-“涂鸦”

一、在手机模拟器上显示一个图片 1、MainActivity.java里的代码 public class MainActivity extends AppCompatActivity { SuppressLint("ClickableViewAccessibility") Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanc…

android:在照片上绘制涂鸦

这个应该是简易版的美图秀秀(小伙伴们吐槽&#xff1a;你这也叫简易版的&#xff1f;&#xff1f;我们看着怎么不像啊……)。好吧&#xff0c;只是在图片上绘制涂鸦&#xff0c;然后保存。 一、选择图片 这个道长有必要说一下&#xff0c;在绘制涂鸦时&#xff0c;笔画会根据…

通过触摸屏事件实现在图片上涂鸦——Android

目的&#xff1a;记录在屏幕上滑动的轨迹&#xff0c;实现在图片上涂鸦的功能 开发工具&#xff1a;Android Studio3.3.2 实现过程&#xff1a; 第一步&#xff1a;新建drawBoard.java用于自定义view 将图片放到drawable文件夹下&#xff0c;用BitmapFactory.decodeResource加…

涂鸦蓝牙协议移值(初级)

一、 移植前所需资料 ①获取涂鸦SDK包&#xff1b; ②基于我们芯片平台生成的库文件&#xff08;将下面的图片发给涂鸦技术支持&#xff0c;然后会提供tuya_ble_lib_51802.lib&#xff09;&#xff1b; 【库不正确报的错误】 ③《涂鸦_ble_sdk_sdk说明_v2》文档&#xff1b; ④…