Linux 之查看 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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宗而研之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值