Linux 之查看 OpenCV 版本并卸载重装
在用GStreamer读取网络相机rtsp流数据时,需要用到3.4.0版本的OpenCV,但TX2刷机时预装了3.1.0版本的OpenCV,因此需要卸载掉并重新安装。
在用 GStreamer 读取网络相机 rtsp 流数据时,需要用到 3.4.0 版本的 OpenCV,但 TX2 刷机时预装了 3.1.0 版本的 OpenCV,因此需要卸载掉并重新安装。首先查看板子上 OpenCV 的版本,直接在终端输入以下指令即可,实际上,在系统中是允许有多个版本的 opencv 存在的,编译过程中指定一下调用的 opencv 版本即可,具体方法参考《Ubuntu下多个版本OpenCV管理(Multiple Opencv version)》
pkg-config --modversion opencv
=============20220909更新================
可以使用 find 指令查找 opencv.pc 文件的位置,并查看里边的内容
$ sudo find / -name opencv.pc
/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc
$ cat /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc
# Package Information for pkg-config
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib/x86_64-linux-gnu
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.4.0
Libs: -L${exec_prefix}/lib/x86_64-linux-gnu -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}
终端会输出板子上 OpenCV 的版本,发现不是所需要的版本号,因此要卸载旧版本的 OpenCV
首先 cd 进入 OpenCV 安装路径的 build 文件夹,然后依次执行以下指令
sudo make uninstall
cd ..
sudo rm -r build
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv
卸载完成后,参考sh脚本(参考),将脚本中的版本号改为 3.4.0(或者需要的其它版本)即可重新安装
注意,为了加快编译速度,可手动将脚本中的倒数第二行修改如下
#make -j$(($NUM_CPU - 1))
make -j4
虽然原代码也是找 CPU 个数来最大化利用,但通过 htop 指令查看 CPU 利用情况时发现只有 1 个 CPU 被利用,因此手动改为 4 个 CPU 可加快编译速度。
编译时如果报与 cuda 相关的错,可以把 -D WITH_CUDA=ON 改为 OFF
安装完成后,再次输入 pkg-config --modversion opencv 查询 OpenCV 版本号
查看 opencv 头文件和库文件地址的指令
pkg-config --libs --cflags opencv
为了测试 OpenCV 安装是否正确,新建一个文件,命名为 opencvtest.cpp,复制以下内容
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage = imread("1.jpg");
imshow("srcIMage",srcImage);
waitKey(0);
return 0;
}
同时在同样的位置放一张 1.jpg 的图片,然后编译运行,如果能正常显示图片即安装正确,否则安装失败,重新安装
g++ opencvtest.cpp -o opencvtest
./opencvtest
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)