Opencv 4.5.5 linux contrib编译

news2024/9/24 11:33:52
  • https://github.com/opencv/opencv/releases    https://github.com/opencv/opencv_contrib/releases/tag/4.7.0 版本要一模一样
    • 下载4.5.5的源码
# 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的代码如下: 

#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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

内网桌面如何让外网电脑连接?快解析内网映射域名设置

异地电脑远程桌面连接局域网服务器需求场景时&#xff0c;大多人会想到在目标本地的路由器上做端口映射设置。其实路由映射方法只适用于有公网IP的网络环境。当所在联网环境下是内部网络&#xff0c;内网环境下无公网IP或无公网IP权限时&#xff0c;路由映射方法就不生效了&…

【谢希尔 计算机网络】第2章 物理层

目录 通信基础 基本概念 两个公式lim 奈氏准则 香农定理 奈氏准则 VS 香农定理 编码与调制 ​编辑 物理层下面的传输媒体 导引型传输媒体 1. 双绞线 2. 同轴电缆 3. 光缆 非导引型传输媒体 无线电微波通信 卫星通信 无线局域网使用的 ISM 频段 信道复用技术 …

RS485总线浪涌解决方案!|深圳比创达EMC

在各种通讯方式当中&#xff0c;RS485总线是较为常见的一种&#xff0c;因其接口简单、系统运行稳定和通讯速率高等特点被广泛应用。但由于RS485总线一般传输距离较长&#xff0c;且经常暴露在外&#xff0c;所以非常容易受到电磁干扰&#xff0c;而浪涌干扰已经成为485通信使用…

【漏洞复现】广联达OA漏洞合集(信息泄露+SQL注入+文件上传)

文章目录 声明广联达OA存在信息泄露一、漏洞概述二、漏洞复现三、修复建议广联达Linkworks办公OA SQL注入漏洞后台文件上传漏洞一、产品简介二、漏洞概述三、复现环境四、修复建议 声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工…

无涯教程-JavaScript - MOD函数

描述 MOD函数返回数字除以除数后的余数。输出与除数的符号相同。 语法 MOD (number, divisor)争论 Argument描述Required/OptionalNumberThe number for which you want to find the remainder.RequiredDivisorThe number by which you want to divide number.Required No…

Spring注解 bean基础

一、Spring注解 bean扫描与注入 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.12.RELEASE</version></dependency>1. 组件注册Configuration和Bean的注入 1&…

FPGA计数器边界问题解析

FPGA计数器边界问题解析 一次作者在处理AMBE2000数据接收过程中&#xff0c;遇到一个问题&#xff0c;对该计数器边界总是模糊不清。现在予以说明&#xff0c;以警示以后工作时书写错误代码。 AMBE2000数据一旦准备好后&#xff0c;一次会输出24个字&#xff0c;其中第1个字0x…

swift 问答app

结构体 mvc模式 不变性 试一试

Hbuilder本地调试微信H5项目(一)

摘要 通过内网穿透&#xff0c;访问本地Hbuilder创建的Vue项目 前置准备 下载并安装【HBuilder】&#xff0c;本文用的是HBuilder3.8.12版本&#xff0c;下载地址 下载并安装【微信开发者工具】&#xff0c;本文用的是1.06版本&#xff0c;下载地址 下载并安装【natapp】&a…

JMeter压测工具介绍、安装及汉化教程,详解安装目录结构

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

使用VMware 16 安装中标麒麟 7 --九五小庞

1、下载中标麒麟7 百度网盘&#xff1a; 百度网盘 请输入提取码 百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间 https://pan.baidu.com/s/1LlmRzKHTF-NR…

为什么Python赢了,别的语言都干嘛去了?

人工智能时代&#xff0c;为什么Python大放异彩&#xff0c;别的语言都干嘛去了&#xff1f; 为什么不是使用者众多的Java&#xff1f;也许是Java啰里啰唆&#xff0c;不如Python那么简洁&#xff1f; 为什么不是Ruby&#xff1f; 和Python一样简洁&#xff0c;但是更加优雅。…

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作

数据库数据恢复-ORACLE常见故障有哪些?恢复数据的可能性高吗?

ORACLE数据库常见故障&#xff1a; 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE数据库ASM存储破坏。 3、ORACLE数据库数据文件丢失。 4、ORACLE数据库数据文件部分损坏。 5、ORACLE数据库DUMP文件损坏。 ORACLE数据库数据恢复可能性分析&#xff1a; 1、ORACLE数据库无…

路由器端口转发

什么是路由器端口转发 路由器端口转发是一种网络配置技术&#xff0c;用于将公共网络&#xff08;如互联网&#xff09;上的请求转发到私有网络中的特定设备或服务。它允许外部设备通过路由器访问内部网络中的设备或服务&#xff0c;实现网络上的通信和互动。 路由器端口转发…

使用凌鲨管理本地仓库

GIT是一种分布式版本控制系统&#xff0c;它允许开发人员在不依赖于中央服务器的情况下进行代码管理和协作。GIT在处理大型项目和复杂的版本历史方面表现出色&#xff0c;提供了强大的分支和合并功能&#xff0c;使得开发团队可以更高效地进行软件开发和代码维护。 管理本地GI…

【python小工具--从0到1实现连点器功能】

python 从0到1实现连点器功能 前言准备工作环境搭建python & vscode 自己给自己提需求解决自己的需求创建可视化界面获取点击点设置点击时间间隔和点击次数连续点击 测试 前言 由于需要干啥啥啥&#xff0c;需要用到连点器&#xff0c;找了找&#xff0c;都没有一款可以用…

直播系统源码平台内容安全与版权维护技术:DRM

在数字化的时代&#xff0c;人们的生活中已深入到网络中来&#xff0c;许多人加入了直播系统源码平台中来&#xff0c;直播系统源码平台为用户们提供了一个发布图文短视频、开启直播、获取最新资讯的地方&#xff0c;这也衍生出了许多网红、主播等用户&#xff0c;他们会在直播…

E. Madoka and the Sixth-graders

Problem - E - Codeforces 思路&#xff1a;写这个题给我写破防了。。。 首先我们能够发现在一次迭代的过程中&#xff0c;所有入度为0的点都会变成空的&#xff0c;由大于n的几个数去填充&#xff0c;所以我们能够发现在一次迭代的过程中&#xff0c;新增的数的个数是固定的&…

高频因子(三)——高频微观结构:理想振幅因子

天软因子序列课程再次启动&#xff0c;本周四&#xff08;9月21日&#xff09;下午4点相约腾讯会议&#xff0c;可直接扫描下方二维码&#xff0c;欢迎大家参会&#xff01; 本次会议主要内容有&#xff1a; 1.介绍理想振幅因子的构造逻辑&#xff0c;如何选择市场代理 变量对振…