1_opencv3环境搭建与测试

之前2020年5月写过一次,时隔3年多,有机会再重新写一次。相比之前,应该是有一点儿进步的。之前是使用默认安装路径,所以无需配置共享库的搜索路径。这次是自定义安装路径,略有区别。随着写程序的时间增长,编译开源库时,更加青睐自定义安装路径,方便添加与移除。

1、系统环境

ubuntu 18.04

gcc :7.5.0(gcc --version)

g++ :7.5.0

cmake : 3.10.2

opencv : 3.4.18

2、opencv3编译设置

解压后cd到opencv-3.4.18目录,新建my_build文件夹,之后cd进入my_build,再之后

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX="/home/auboros/my_workspace/opencv/opencv-3.4.18/my_build" ..

再详细一些的可以参考《学习opencv3》第一章概述。不过解压后没有见到configure文件。注意指令最后那两个..。

我的电脑虚拟机make -j16编译大概10分钟。

期间可能出现的错误如图:

2e4b95963d8d899249357ccb9cd63806.jpeg

这个问题不大,重新make即可。

如何说明编译成功了呢?    

ad6a17ecd3f959c9476bb02cd7666c38.jpeg

这么多库,难道需要全部链接???

3、运行第一个demo

《学习opencv3》这本书例子程序的地址:

https://github.com/oreillymedia/Learning-OpenCV-3_examples

从这里面抄一个简单的。不知怎么回事,最近一年很喜欢抄程序。

cv::Mat img = cv::imread("../opencv_/data/HappyFish.jpg");


    if(img.empty()){


        printf("img is empty \n");


    }


          


    cv::namedWindow( "Example 2-1", cv::WINDOW_AUTOSIZE );


    cv::imshow( "Example 2-1", img );


    cv::waitKey( 0 );


    cv::destroyWindow( "Example 2-1" );

我用的是Qt,因为我那个ubuntu之前装了一个Qt,还装了一个melodic的ros。

那么多库,确实全部链接了,因为我不知道哪个用哪个不用。不过具体编程还好,Qt Pro中这样操作:LIBS += $$PWD/libs/linux_x64/opencv3/lib/libopencv_*,抄的3年前的。    

程序编译完成后,运行不了:error while loading shared libraries: libopencv_core.so.3.4: cannot open shared object file: No such file or directory.

问题不大,之前遇到过几次,有经验了:/etc/ld.so.conf.d下添加一个共享库搜索路径的conf文件,完了ldconfig一下。

05a70930347befbce3dc9506d32d0e44.png

之后运行还有一个error,不过能运行,这个sudo apt-get install libcanberra-gtk-module这样解决。

e7f4ed63b86f16cb972da136fdfd9868.jpeg

最后的验证成果:

f20bc19ea031f923f5facf59d9d18baa.png

欢迎关注!

ad794e7531268e45b8ab438da6728bd4.png

如需完整测试工程后台留言“opencv测试工程”.    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Dockerfile 常用指令

1、FROM 指定base镜像。 2、Docker history 显示镜像的构建历史,也就是Dockerfile的执行过程。 Missing 表示无法获取IMAGE ID,通常从Docker Hub下载的镜像会有这个问题。 3、调试Dockerfile,使用sudo docker run -it XXXX,XXXX…

036-安全开发-JavaEE应用第三方组件Log4j日志FastJson序列化JNDI注入

036-安全开发-JavaEE应用&第三方组件&Log4j日志&FastJson序列化&JNDI注入 #知识点: 1、JavaEE-组件安全-Log4j 2、JavaEE-组件安全-Fastjson 3、JavaEE-基本了解-JNDI-API 演示案例: ➢Java-三方组件-Log4J&JNDI ➢Java-三方组件-Fa…

【开源】SpringBoot框架开发大学生相亲网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询会员4.2 查询相亲大会4.3 新增留言4.4 查询新闻4.5 新增新闻 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的大学生相亲网站,包含了会员管理模块、新闻管…

炬芯ATS2819 soundbar音响系统开发完全手册

加我微信hezkz17,可申请加入数字音频系统研究开发交流答疑群,赠送音频项目核心开发资料 ATS2819音响系统开发完全手册 1 硬件原理实现 图1 硬件原理框图 2 SOC ATS2819介绍 3 E800 板子项目实物…

黑群晖一键修复:root、AME、DTS、转码、CPU型号等

食用方法:SSH连接群晖使用临时root权限执行 AME3.x激活补丁 只适用于x86_64的:DSM7.x Advanced Media Extensions (AME)版本3.0.1-2004、3.1.0-3005 激活过程需要下载官方的解码包,过程较慢,耐心等待。。。 DSM7.1和7.2的AME版…

【前端设计】炫酷导航栏

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 html <!DOCTYPE html> <html lang"en"> <head><meta charset&quo…

Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(中)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

家人们,比赛打完了

啊&#xff0c;终于打完一场比赛了&#xff0c;但还有三场…… 先看看我的战绩&#xff1a; 共八题&#xff0c;AC6题&#xff0c;总共3902分&#xff0c;3.7k人参加&#xff0c;第980名 来看看第一&#xff1a; A8题&#xff0c;我只有2题没做出&#xff0c;相差4000多分&am…

wsl连接USB设备

参考教程&#xff1a;连接 USB 设备 | Microsoft Learn 1.安装usbipd-win WSL 本身并不支持连接 USB 设备&#xff0c;因此你需要安装开源usbipd-win项目【下载Releases dorssel/usbipd-win (github.com)】 2.共享USB设备 通过以管理员模式打开PowerShell或者CMD并输入以下…

吐血整理!操作系统【处理机调度】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;OS从基础到进阶 1 基本概念1.1 总览1.2 什么是调度1.2.1 调度1.2.2 处理机调度 1.3 调度的三个层次1.3.1 高级调度1.3.2 中级调度&#xff08;内存调度&#xff09;1.3.3 低级调度&#xf…

学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)

学生成绩管理系统目录 目录 基于Springboot的学生成绩管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能模块 2、学生功能模块 3、教师功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

Medical Boundary Diffusion Modelfor Skin Lesion Segmentation

皮肤病灶分割的医学边界扩散模型 摘要 由于多尺度边界关注和特征增强模块的进步&#xff0c;皮肤镜图像中的皮肤病变分割最近取得了成功。然而&#xff0c;现有的方法依赖于端到端学习范式&#xff0c;直接输入图像和输出分割图&#xff0c;经常与极其困难的边界作斗争&#…

009集——vba实现内存中大小端序的转换(附不同进制转换代码)

小端序为很多系统默认的数据存储方式&#xff0c;但有些数据格式为大端序模式解读文件&#xff0c;因此我们需将小端序字节颠倒排序&#xff0c;这样用大端序模式解读此文件&#xff0c;最后即可读取我们想要的内容。方法如下&#xff1a; Function SwapEndian(ByVal value As…

问题:在额定电压500V以下的电路中,使用的各种用电设备,一般称为(_ _ _)用电设备 #媒体#媒体#媒体

问题&#xff1a;在额定电压500V以下的电路中,使用的各种用电设备,一般称为&#xff08;_ _ _)用电设备 参考答案如图所示

Go语言中的加密艺术:深入解析crypto/subtle库

Go语言中的加密艺术&#xff1a;深入解析crypto/subtle库 引言crypto/subtle库概览ConstantTimeCompare函数深入解析ConstantTimeSelect函数应用详解ConstantTimeLessOrEq函数实践指南安全编程实践性能优化与最佳实践与其他加密库的比较总结 引言 在当今快速发展的互联网时代&…

pygame入门学习(四)位图的使用

大家好&#xff01;我是码银&#x1f970; 欢迎关注&#x1f970;&#xff1a; CSDN&#xff1a;码银 公众号&#xff1a;码银学编程 载入图片 pygame.image.load( )&#xff0c;Pygame 可以通过pygame.image.load( )函数处理位图文件。 大致可以支持以下文件&#xff1a;JPG…

AI - 碰撞避免算法分析(ORCA)

对比VO/RVO ORCA算法检测碰撞的原理和VO/RVO基本一样的&#xff0c;只是碰撞区域的计算去掉了一定时间以外才可能发生的碰撞&#xff0c;因此碰撞区域的扇形去掉了前面的部分&#xff0c;由圆锥头变成了个圆 另一个最主要的区别是&#xff0c;求新的速度&#xff0c;是根据相…

基于SSM的图书馆预约占座系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的图书馆预约占座系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…

第7讲 SpringSecurity执行原理概述

SpringSecurity执行原理概述 spring security的简单原理&#xff1a; SpringSecurity有很多很多的拦截器&#xff0c;在执行流程里面主要有两个核心的拦截器 1&#xff0c;登陆验证拦截器AuthenticationProcessingFilter 2&#xff0c;资源管理拦截器AbstractSecurityInterc…

掌握这些机器学习算法优缺点,面试轻松应对

掌握这些机器学习算法优缺点&#xff0c;面试轻松应对 面试官问到机器学习算法&#xff0c;你是否能够信手拈来?今天就为大家分享几个关键算法的优缺点&#xff0c;从KNN到Adaboosting&#xff0c;每个算法都有其独特之处。 比如&#xff0c;KNN简单直观&#xff0c;适合解决分…