https://blog.csdn.net/qq_30155503/article/details/79434863

注意事项:
https://github.com/opencv/opencv_contrib/releases
opencv_contrib 的版本一定要对应起来

创建第一个opencv工程,并编写显示图片的代码。

一、创建工程目录,并进入目录

$ mkdir example$ cd example

从宏观来说,我们只要写两个文件,一项目源码文件,二编译文件。

源码文件:顾名思义,就是我们写 代码的cpp文件;

编译文件:用来编译整个工程,生成可执行文件。

二、创建cpp文件,编辑最简单示例代码

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>using namespace cv;
using namespace std;int main()
{cout << "Hello OpenCV " << CV_VERSION << endl;return 0;
}

三、创建CMakeLists.txt文件,编辑编译代码

1、首先看官方给出的CMakeLists.txt(上篇已提到这个文件),在opencv-3.4.0/samples/cpp/example_cmake路径下。

注释很详细,虽然这是编译opencv自带的一个例程,但具有很强的通用性,可作为教程使用。

# cmake needs this line
cmake_minimum_required(VERSION 2.8)# Define project name
project(opencv_example_project)# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")if(CMAKE_VERSION VERSION_LESS "2.8.11")# Add OpenCV headers location to your include pathsinclude_directories(${OpenCV_INCLUDE_DIRS})
endif()# Declare the executable target built from your sources
add_executable(opencv_example example.cpp)# Link your application with OpenCV libraries
target_link_libraries(opencv_example ${OpenCV_LIBS})

2、理解上面的代码,再取其精华,写成自己的CMakeLists.txt,就5行

# cmake needs this line 要求的最低版本
cmake_minimum_required(VERSION 2.8)# Define project name 定义工程名
project(example_project)# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI 自动查找库
find_package(OpenCV REQUIRED)# Declare the executable target built from your sources 声明可执行目标文件及源文件
add_executable(example example.cpp) # 目标文件,源文件0,源文件1,...# Link your application with OpenCV libraries 将目标文件与库链接
target_link_libraries(example ${OpenCV_LIBS})   # 目标文件,库路径

可能会有疑问:这个文件是什么鬼?

其实这个是cmake的编译文件,主要目的是生成Makefile,然后就可以用make来编译工程啦。

3、换行编译命令,生成Makefile

$ cmake .

编译成功,则会生成多个文件:

整个cmake过程如上,可以看到已经有了Makefile了,那么就可以make了。

四、编译工程,运行可执行文件

1、编译、运行

$ make$ ./example

如上图,则意味着第一个opencv工程成功创建!

五、修改cpp文件代码,显示一张图片

1、编辑代码

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <iostream>using namespace cv;
using namespace std;int main()
{cout << "Hello OpenCV " << CV_VERSION << endl;// 载入图像Mat myMat = imread("myImage.JPEG", 1);// 创建一个窗口namedWindow("Opencv Image", WINDOW_AUTOSIZE);// 显示图像imshow("Opencv Image", myMat);// 等待按键延时 mswaitKey(5000);return 0;
}

3、编译、运行

$ make$ ./example

结果如下:成功! (PS:记得将图片放对位置)

命令行输入图像

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include <iostream>using namespace cv;
using namespace std;int main( int argc, char** argv)
{cout << "Hello OpenCV " << CV_VERSION << endl;// 载入图像Mat img = imread(argv[1], 1);if( img.empty() )  return -1; // 创建一个窗口namedWindow("Opencv Image", WINDOW_AUTOSIZE);// 显示图像imshow("Opencv Image", img);// 等待按键延时 mswaitKey(5000);return 0;
}

命令行输入:

make
./test_img test.jpg

全路径图像输入

./test_img /home/zhangjun/SoftWare/Learning/12.jpg

Ubuntu创建opencv工程并显示一张图片相关推荐

  1. 在Ubuntu下用C/C++(或python)调用opencv库编程显示一张图片并在上面加文字

    一.实验内容 调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点 ...

  2. JetBrains Rider想创建新工程一直显示Syncing Project Templates...

    记录使用Jetbrains Rider,版本2021.1.5,想要新建C#工程遇到的一个问题: 左侧只有Empty Solution 和 More Templates两个选项,并且下方一直显示 Syn ...

  3. 在Ubuntu调用opencv库编程显示图片并叠加文字

    一.汉字编码介绍 (一)区位码 (二)机内码 (三)点阵字库储存 (四)汉字点阵获取 二.操作步骤 (一)操作环境 OpenCV (二)实验准备 (1)下载中文点阵字库及显示工具程序 (2)将所需文件 ...

  4. 基于Ubuntu系统调用opencv——在图片上显示汉字和数字

    文章目录 一. 认识汉字编码 (1)区位码 (2)机内码 (3)点阵字库结构 (4)汉字点阵获取 二. 实例--调用opencv在图片上显示文字 (1)准备工作 (2)撰写代码 (3)编译运行 三. ...

  5. Ubuntu 下调用 opencv 在图片显示汉字和数字

    目录 实验要求: 1 环境准备 1.1创建文件 实验要求: 学习理解汉字的机内码.区位码编码规则和字形数据存储格式.在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片, ...

  6. OpenCV入门系列(4):显示一张图片和一个视频

    显示一张图片,对于我们来说是很容易理解的事情.但播放一个视频,感觉就很神秘很有技术含量了. 然而今天看了<学习OpenCV中文版>中的两个小例子后,惊呼,原来如此,居然这么简单!就是我们经 ...

  7. 两台电脑串口传输文件及调用opencv库编程显示图片和文本

    文章目录 一.两台电脑利用串口进行文件传输 (一).实验内容 (二).配置环境 (三).实验过程 (四).结果分析 二.在Ubuntu下基于Linux环境调用opencv库编程显示图片和文本 (一). ...

  8. 借助USB转RS232 模块串口传输练习、基于Ubuntu调用Opencv的点阵汉字字模读取

    借助USB转RS232 模块串口传输练习.基于Ubuntu调用Opencv的点阵汉字字模读取 文章目录 借助USB转RS232 模块串口传输练习.基于Ubuntu调用Opencv的点阵汉字字模读取 1 ...

  9. b g opencv读入的图片 r_OpenCV提取显示一张图片(或者视频)的R,G,B颜色分量

    使用OpenCV可以提分别提取显示一张图片(或者视频)的R,G,B颜色分量.效果如下. 原图: R: G: B: 示例代码如下,貌似很久以前网上找的的,逻辑很清晰,就是把R,G,B三个分量分开,然后显 ...

最新文章

  1. 领导和管理?你一定要分得清!
  2. FPGA的设计艺术(6)STA实战之SmartTime时序约束及分析示例(I)
  3. iPhone开发之 ARC是什么
  4. 计算机里面照片无法打卡,为什么电脑照片打不开_电脑照片打不开的解决方法...
  5. 编写五子棋的完整python代码_python实现五子棋小程序
  6. 使用混合多云每个人都应避免的3个陷阱(第4部分)
  7. c遗传算法的终止条件一般_Matlab2 :Matlab遗传算法(GA)优4~-r-具箱是基于基本操作 联合开发网 - pudn.com...
  8. 国密算法SM2-java实现
  9. Linux磁盘管理2
  10. 计算机网络|UDP用户数据报服务
  11. 基于JAVA+SpringBoot+Mybatis+MYSQL的疾病报销管理系统
  12. 【高级】分表和分区的区别、分库分表介绍与区别
  13. CUBA Platform 7.0.3 发布,企业级应用开发平台
  14. ValueError: output parameter for reduction operation logical_and has too many dimensions ?
  15. C++计算某天是该年的第几天
  16. 算法基础:用递归解决排列组合问题
  17. prometheus常用函数详解
  18. 网络安全基础(十二)
  19. @GetMapping注解的理解
  20. java matcher group方法_Java中正则表达式相关类中Matcher.group()方法

热门文章

  1. linux 如何查看tomcat实时的日志
  2. ROS学习汇总(3D摄像头)
  3. Windows10下OpenCV_contrib安装配置
  4. c语言包括在方括号中的序号称为,自考《高级语言程序设计》知识点总结(四)...
  5. mysql根据当前时间删除_从日期时间早于另一项日期时间的Mysql表中删除
  6. ISME:广东土壤所孙蔚旻组-脱硫弧菌介导的硫氧化锑还原耦合作用
  7. MPB:华中师大谢波组-​​​微生物非标记定量蛋白质组学样品制备方法
  8. “破五唯”之后,竟然立这个!
  9. 水痘痊愈就能终生免疫?其实病毒仍潜伏在神经,随时以更可怕的形式爆发......
  10. 给不爱洗手找个理由——皮肤共生菌可以促进伤口愈合