首页 > 其他分享 >OpenCV GPU解码简单例子

OpenCV GPU解码简单例子

时间:2024-07-07 22:21:16浏览次数:19  
标签:解码 OpenCV ex frame reader GPU cv

基于GPU/cuda的运算能够极大解放CPU的负担,特别是针对复杂图像处理的场景中。该例子主要展示利用GPU的硬解码模块,对本地和网络视频流进行解码和本地显示。环境如下,ubuntu20.04+opencv4.10.0+cuda12.5. 代码逻辑比较简单,不涉及复杂逻辑和算法,直接看代码。

GPU 解码本地视频并进行显示

 1 int video_decode_show_test(std:: string fname)
 2 {
 3     cv::namedWindow("GPU", cv::WINDOW_NORMAL);
 4     
 5     /** 1. 构造视频读取器  */
 6     cv::Ptr<cv::cudacodec::VideoReader> d_reader;
 7     try{
 8         d_reader  = cv::cudacodec::createVideoReader(fname);
 9     }catch(cv::Exception ex)
10     {
11         printf("Failed to open video for %s.\n", ex.err.c_str());
12         return -1;
13     }
14     
15     /** 2. 读取视频帧  */
16     cv::cuda::GpuMat d_frame;
17     for (;;)
18     {
19         try{
20             if (!d_reader->nextFrame(d_frame))
21                 break;
22         }catch(cv::Exception ex){
23             printf("Failed to read frame.");
24             continue;
25         }
26         
27         /** 3. 将视频帧从内存中下载到内存中,并显示  */
28         cv::Mat frame;
29         d_frame.download(frame);
30         cv::imshow("GPU", frame);
31         
32         if (cv::waitKey(10) > 0)
33             break;
34     }
35     
36     d_reader.release();
37     return 0;
38 }

 

标签:解码,OpenCV,ex,frame,reader,GPU,cv
From: https://www.cnblogs.com/uuvv/p/18289012

相关文章

  • 调试 hipcc 的llvm llc gpu目标代码生成模块
    源码:hello_vectorAdd.hip:__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=blockDim.x*blockIdx.x+threadIdx.x;C[i]=A[i]+B[i]+0.0f;}Makefile:x.O1.s:hello_vectorAdd.hip ../../local_amdgpu/bin/clang++./he......
  • opencv环境搭建-python
    最近遇到了一些图像处理的需求,所以需要学习一下opencv,来记录一下我的学习历程。安装numpypipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplenumpy安装matplotlibpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplematplotlib安装opencvpipin......
  • 树莓派5 — 官方Raspberry Pi OS — OpenCV图像处理 — 1
    引言一名视觉入门选手,在校生大一,了解OpenCV的皮毛。撰写此文,一是为了分享内容,帮助后来人;二更是为了能吸引大佬能给我提出我在学习上的建议和问题。说明环境:树莓派5  官方操作系统RaspberryPiOS  OpenCV  Python语言  CSI500万摄像头内容:树莓派5安装OpenCV,调......
  • Linux系统中交叉编译opencv库
    目标:将opencv进行交叉编译,使其能在rk3326板子上运行使用。环境:ubuntu:18.04opencv:4.5.4opencv源码从挂网下载:opencv源码下载地址交叉编译链:gcc-arm-10.3-linux-gun一.环境准备1.交叉编译链我配置在/opt/gcc-arm-10.3-linux-gun中,可根据实际情况自行配置目录;2.opencv......
  • MinGW GCC 5.3.0 编译OpenCV4.5.5 运行到imshow时崩溃
    Windows 下通过mingw32-make编译opencv4.5.5,经过一系列问题解决后发现其他正常,imshow崩溃.GCC版本太低原因,换更高版本的GCC解决.毕竟GCC5.3.0是2015年发行的,opencv4.5.5是2020年发行的尝试换GCC i686-8.1.0-release-posix-sjlj-rt_v6-rev0编译,调用imshow时正常运行,并且......
  • BMP(Bitmap Image File)解码流程:
    BMP(BitmapImageFile)的解码流程主要包括以下几个步骤,这些步骤确保了BMP图像文件能够被正确地读取并显示在屏幕上:1.读取文件头信息目的:确认文件类型和基本信息。内容:BMP文件以特定的文件头标识开始,这包括文件的类型(必须是“BM”,以十六进制表示为0x4D42)、文件大小、保留字(......
  • C++ UTF-8编解码
    icu编解码数据:externconstUConverterSharedData  _MBCSData,_Latin1Data,  _UTF8Data,_UTF16BEData,_UTF16LEData,_UTF32BEData,_UTF32LEData,  _ISO2022Data,   _LMBCSData1,_LMBCSData2,_LMBCSData3,_LMBCSData4,_LMBCSData5,_LMBCSData6......
  • opencv 编译报错: error: temporary of non-literal type 'google::protobuf::intern
    完整报错:C:\Users\MyName\MyProject\lib\include\google\protobuf\stubs\mutex.h:124:error:temporaryofnon-literaltype'google::protobuf::internal::CallOnceInitializedMutex<std::mutex>'inaconstantexpressionInfileincludedfrom......
  • pyinstaller打包onnxruntime-gpu报错找不到CUDA的解决方案
    问题说明:使用onnxruntime-gpu完成了深度学习模型部署,但在打包时发生了报错:找不到CUDA具体问题描述:RuntimeError:D:\a\_work\1\s\onnxruntime\python\onnxruntime_pybind_state.cc:857onnxruntime::python::CreateExecutionProviderInstanceCUDA_PATHissetbutCUDAwas......
  • 【超万卡GPU集群关键技术深度分析 2024】
    文末有福利!1.集群高能效计算技术随着大模型从千亿参数的自然语言模型向万亿参数的多模态模型升级演进,超万卡集群吸需全面提升底层计算能力。具体而言,包括增强单芯片能力、提升超节点计算能力、基于DPU(DataProcessingUnit)实现多计算能力融合以及追求极致算力能效......