ubuntu16.04+opencv3.4.0

进来需要在linux下用到opencv,虽然linux中自带的python自带了opencv类似的图像处理函数,但是如果在linux中写C++ 就不好玩了,所以今天琢磨了好久才弄明白linux下怎么使用opencv。

参考链接:

http://www.linuxidc.com/Linux/2015-05/116960.htm

http://jingyan.baidu.com/article/14bd256e466474bb6d2612db.html

http://blog.csdn.net/keith_bb/article/details/52685231

http://www.it165.net/pro/html/201407/17019.html

1.从官网下载opencv(http://opencv.org/),选择自己需要的opencv版本(opencv-3.4.0.tar.gz);

2.将opencv 解压,比如解压后的opencv地址是:/home/lily/software/opencv-3.4.0 ,在这个地址下有一个CMakeLists.txt文件;

3.在目录 /home/lily/software/opencv-3.4.0下面打开一个linux终端,

3.1)  输入 ( mkdir build)

3.2)  输入 ( cd build)

3.3)  输入 (cmake ..  ),注意括号里面的输入是cmake+空格+黑点+黑点,输入后按enter键,会出现一大串的执行命令;

4.配置opencv相关路径

4.1)在linux系统中打开/etc/ld.so.conf.d/opencv.conf,如果这个opencv.conf不存在,可以新建一个,然后在opencv.conf中加入一句:/usr/local/lib ,这样子系统就可以找到opencv了,在/etc/ld.so.conf.d中打开终端,然后执行:sudo ldconfig

4.2)在linux系统中打开/etc/bash.bashrc  ,这个文件是已经存在的,在它的末尾加上一下两句,然后保存并关闭:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig    

export PKG_CONFIG_PATH 

 

5.以上大概实现了opencv的配置,如果操作时有问题,建议多参考别人的经验。

假设以上几步都没有问题,下面测试一下opencv;

6.在原始下载的opencv安装包里面,有一个测试程序,当打开地址 /home/lily/software/opencv-3.4.0,应该可以看到一个文件名:samples,打开samples,看到一个cpp文件,这说明里面是使用C++测试opencv,继续打开cpp,看到一个example_cmake文件,打开这个文件看到3个子文件:CMakeLists.txt , example.cpp , Makefile .

7. 在文件example_cmake中打开一个终端,输入 ls,确认当前目录下有 CMakeLists.txt example.cpp Makefile 三个文件,

然后在终端中输入:(cmake .),会出现一大串执行命令,同样,你的当前文件中会多出来几个新文件,

之后在终端中输入:(make),文件中出现一个淡紫色的文件:opencv_example,

最后在终端中输入:(./opencv_example),会出现一个图片,我的图片中中显示字符“Hello OpenCV”.

8.当测试opencv 自带的示例程序没问题,说明linux 中已经成功安装了opencv ,下面我自己写一个opencv 与 C++代码,看看能否执行;

9.比如我在:/home/lily/software/opencv-3.4.0 下面新建一个文件test, 这个测试程序的目的就是简单地读取图片,

打开test 文件,放进去一张图,图名比如叫做 lena.jpg ,新建一个子文件,叫做 hello.cpp ,再新建一个子文件,叫做CMakeLists.txt ,下面首先是hello.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 << "Read an image and display " << endl;
    Mat image = imread("lena.jpg");
    imshow("lena",image);
    waitKey(0);
    return 0;
}

写完代码后保存,然后打开CMakeLists.txt,这个文件跟hello.cpp 执行内容对应,需要简单编辑,在CMakeLists.txt 中输入以下内容:

# cmake needs this line
cmake_minimum_required(VERSION 2.8)

# Define project name
project(opencv_hello_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 paths
  include_directories(${OpenCV_INCLUDE_DIRS})
endif()

# Declare the executable target built from your sources
add_executable(opencv_hello hello.cpp)

# Link your application with OpenCV libraries
target_link_libraries(opencv_hello ${OpenCV_LIBS})

上面CMakeLists.txt 中的hello 就对应了刚才写的hello.cpp,所以如果你的cpp 文件是别的名字,只需要把CMakeLists.txt 中的 hello 替换成对应的 cpp 文件名就行;

10.文件编辑完毕,测试自己刚才写的代码,首先在test 文件中打开终端,输入:(cmake .),出现一大串执行命令,同样在test 文件中多出几个文件,然后在终端中输入:(make),这时test 文件中会出现淡紫色的文件:opencv_hello,最后在终端中输入:(./opencv_hello),就可以看到 lena 的照片啦。

11.测试结束,最大的感触是C++ 调用opencv时,需要自己手动编辑CMakeLists.txt 文件,这一步操作不知道是必须的,或者是有其他方法,以后慢慢学习吧。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值