Opencv 4.5.5 linux contrib编译

bash 复制代码
# 0. 将contrib文件夹移动到opencv文件夹中去
mkdir build
cd build

# 1. cmake生成配置文件,其中OPENCV_EXTRA_MODULES_PATH的路径中写明contrib模块的路径
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.5/modules ..

# 2. 编译和生成
make -j16
# 3. 安装
sudo make install # 将库拷贝到/usr/local中

# 4. 生成配置文件
sudo gedit /etc/bash.bashrc # 文末添加以下内容
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

# 5.向系统更新配置文件
source /etc/bash.bashrc

# 6. 生成opencv.conf文件,就可以利用pkg-config链接到库了
sudo gedit /etc/ld.so.conf.d/opencv.conf # 添加库的路径: /usr/local/lib
# 7. 更新pkg-config文件
sudo ldconfig
sudo updatedb


# 8.测试是否安装好了
pkg-config --modversion opencv
pkg-config --libs opencv

出现以下内容,说明安装成功了!
-L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core


# 9. 测试程序
/home/helen/code/C++code/yolov5_zhr/main$ g++ main.cpp -o main `pkg-config --cflags --libs opencv`
/usr/bin/ld: 找不到 -lopencv_shape
/usr/bin/ld: 找不到 -lopencv_superres
/usr/bin/ld: 找不到 -lopencv_videostab
collect2: error: ld returned 1 exit status

出现的bug为没有编译contrib文件夹,重新编译contrib后再试:编译成功!

复制代码
./main: error while loading shared libraries: libopencv_highgui.so.405: cannot open shared object file: No such file or directory
# 解决办法
sudo ldconfig # 更新一下库文件,因为刚刚才执行了 make install

main.cpp的代码如下:

cpp 复制代码
#include <stdio.h>
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>

int main(){
    // printf("hello world\n");
    cv::Mat img;
    img = cv::imread("/home/helen/dataset/boat/FN-frames/0a19.jpg");
    if(img.empty()){
        std::cout << "fail to read img" << std::endl;
    }
    cv::namedWindow("Image");
    cv::imshow("Image", img);
    cv::waitKey(0);

    return 0;
}
// g++ main.cpp -o main  编译并生成C++文件 -o是目标文件
// 执行main文件 "/home/helen/code/C++code/yolov5_zhr/"main
相关推荐
用户47949283569155 分钟前
又当又立: Anthropic 这篇安全白皮书,为什么让人恶心
人工智能
Darling噜啦啦10 分钟前
AI Loop 自迭代循环实战:让 AI 自动写文案直到完美——从 Prompt 工程到 Loop 工程
人工智能
vanuan11 分钟前
MCP协议实战(Python版):让AI直接查你的数据库
人工智能
Vuhao15 分钟前
为什么同样的问题,别人的AI回答质量高40%?
人工智能
Vuhao16 分钟前
如何创造自己的工作流
人工智能
魏祖潇19 分钟前
RAG 的关键从来不是向量——是你能不能把对的内容捞出来
人工智能
web_Leon19 分钟前
提示词工程已死?Loop Engineering 三步法,让你的 AI 效率暴增 10 倍
人工智能·ai编程
半个落月28 分钟前
为什么大模型“记不住”你?从一次 API 调用讲透 LLM 的无状态、上下文与对话历史
人工智能
血小溅29 分钟前
Skill 脚本语言选型:Python、Node.js、Shell 到底怎么选?
人工智能·后端
ZhengEnCi29 分钟前
09d-斯坦福 CS336 作业三:缩放定律(Scaling Laws)
人工智能