分享视频分析软件常用的几个C++库
生活随笔
收集整理的這篇文章主要介紹了
分享视频分析软件常用的几个C++库
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.Opencv庫
- 庫簡介
OpenCV是一個跨平臺計算機視覺開源庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。 - 常用功能
作為非專業圖像算法工程師的C++工程師,在軟件開發中,主要用opencv實現以下功能:
1.圖像色空間轉換,如RGB與YUV之間的轉換;
2.圖像的載入、縮放、拼接等基本操作;
3.圖像或者視頻上文字的疊加,原生的opencv字符疊加函數是不支持中文疊加的。但是在opencv3.0之后,結合freetype庫易經可以實現中文字符的疊加;
4.視頻的編碼和解碼。在解碼方面,基于ffmpeg的新版本Opencv庫,已經可以實現大多數格式的視頻文件的解碼。
注意:
1.Opencv是開源庫,我們可以從opencv官網下載其源碼及編譯好的庫;
2.在項目引用Opencv庫時,一定要保證Opencv的編譯平臺、編譯庫的VS版本與項目的版本完全一致。如果不一致,有可能出現不可預料的風險,而且這種問題在實際項目中很難排查;
3.如果要重新編譯Opencv庫,可以使用CMake軟件,結合網上的教程,一步一步實現Opencv庫的編譯工作。具體編譯過程可參考:https://blog.csdn.net/u014337397/article/details/80371245。
2.ffmpeg庫
- 庫簡介
ffmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源庫。它提供了錄制、轉換以及流化音視頻的完整解決方案。 - 常用功能
個人在實際工作中,主要用ffmpeg實現以下功能:
1.H264流的解碼。目前我們生活中接觸到的大部分網絡相機視頻流都是H264流或者H265流,由于H264流是壓縮流,我們要進行算法分析,必須對H263流進行解碼,將其轉換為一幀幀的RGB或者YUV圖像;
2.H264流的編碼。我們有時需要將處理好的圖像幀壓縮成H264視頻流,這就需要用ffmpeg的編碼功能。
注意:
1.ffmpeg是開源庫,我們可以從ffmpeg官網下載其源碼;
2.ffmpeg不僅支持CPU解碼,也支持GPU解碼。目前測試成功的案例是通過ffmpeg和CUDA,實現40路1080P視頻的同時解碼;
3.如果要重新編譯ffmpeg庫,可以使用CMake軟件,結合網上的教程,一步一步實現Opencv庫的編譯工作。
3.X264
- 庫簡介
如果說Opencv和ffmpeg是“大而全”的庫,那么X264庫就是“小而美”的庫了。X264庫主要實現X264的編碼功能。 - 實際應用
如圖像轉變為視頻、違章視頻的保存、視頻的打標等相關編碼工作。
4.IJL庫
- 庫簡介
IJL庫是Intel專門針其的CPU優化的JPEG編碼庫,其針對JPG圖像的壓縮和解壓速度,是其他開源庫不可比擬的。 - 實際應用
1.將JPG圖像的解壓;
2.圖像數據的壓縮保存。
總結
以上是生活随笔為你收集整理的分享视频分析软件常用的几个C++库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python waitkey_pytho
- 下一篇: C++包扩展_利用 MATLAB Cod