How to compile OpenCV with Gstreamer [Ubuntu&Windows] | by Galaktyk 01 | Medium
香橙派官方镜像自带一个opencv4.5.4的头文件库,可以使用C/C++语言直接调用,奈何本渣渣太菜还不会C++,只能想想办法用python调用了。按照以前玩jetson nano的经验,决定使用opencv的Gstreamer读取。
想要使用gstreamer获取视频流,首先必须确定opencv开启了Gstreamer,一般来说使用pip install opencv-python安装的opencv是不开启Gstreamer的
可以尝试以下代码查看:
import cv2
print(cv2.getBuildInformation())
上图就代表未开启Gstreamer,这种情况下是无法通过cv2.CAP_GSTREAMER直接读取的
cv2.VideoCapture(pipeline, cv2.CAP_GSTREAMER)
想要开启Gstreamer,就需要从源码进行编译。
预备工作:
下载依赖库
sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
1、下载opencv source
https://github.com/opencv/opencv/archive/4.5.4.zip
2、解压,创建build文件夹,使用Cmake配置
unzip opencv-4.5.4.zip
cd opencv-4.5.4
mkdir build
cd build
Cmake配置如下
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \ # 设置构建类型为RELEASE
-D INSTALL_PYTHON_EXAMPLES=OFF \ # 不安装Python示例
-D INSTALL_C_EXAMPLES=OFF \ # 不安装C示例
-D BUILD_opencv_python2=OFF \ # 不构建Python 2支持
-D CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") \ # 设置安装路径为Python的安装路径
-D PYTHON3_EXECUTABLE=$(which python3) \ # 指定Python 3可执行文件路径
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \ # 指定Python 3的包含目录
-D PYTHON3_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \ # 指定Python 3的包路径
-D WITH_GSTREAMER=ON \ # 开启GStreamer支持
-D BUILD_EXAMPLES=OFF \ # 不构建示例
-D PNG_LIBRARY=/usr/lib/aarch64-linux-gnu/libpng.so \ # 指定PNG库路径
..
配置后检查一下自己的配置,路径什么的是否正确,重点是GStreamer一行为YES(下图是截的别人的How to compile OpenCV with Gstreamer [Ubuntu&Windows] | by Galaktyk 01 | Medium)
3、开始编译
下面命令是全核一起参与编译,但是在我的香橙派5plus上开全核编译时出现多次系统死机情况,所以我使用的是 make -j4 只开启四个线程编译
make -j$(nproc)
4、安装,更新动态链接库
sudo make install
sudo ldconfig
5、测试
首先卸载python中的opencv-python包
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
了95%以上前端开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)