Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的实现方法

实现Ubuntu14.04下的OpenCV 2.4.8和OpenCV 3.3.1多版本共存,可以采用以下方法:

环境要求

  • Ubuntu14.04
  • 已经安装OpenCV 2.4.8
  • 已经安装OpenCV 3.3.1(如果需要安装的话)

步骤

1.安装依赖库

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config problem-report xorg-dev libboost-all-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2.下载OpenCV3.3.1源码

git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.3.1

3.创建OpenCV3.3.1的构建目录

mkdir build3 && cd build3

4.使用CMake生成Makefile

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3.3.1 -D BUILD_SHARED_LIBS=ON ..

说明:

  • -D 指定一个参数,这里有几个参数的含义:
  • CMAKE_BUILD_TYPE: 指定编译方式,常规有Debug和Release
  • CMAKE_INSTALL_PREFIX: 指定安装目录
  • BUILD_SHARED_LIBS: 指定是否编译动态库

5.进行安装

make -j4
sudo make install

6.重命名原来的OpenCV2.4.8库

cd /usr/local/
sudo mv opencv opencv2.4.8

7.修改OpenCV 3.3.1配置文件

sudo ln -s /usr/local/opencv3.3.1/include/opencv4 /usr/local/include/
sudo ln -s /usr/local/opencv3.3.1/lib/pkgconfig/opencv4.pc /usr/local/lib/pkgconfig/
sudo ln -s /usr/local/opencv3.3.1/share/OpenCV/ /usr/local/share/OpenCV
sudo ln -s /usr/local/opencv3.3.1/bin/opencv* /usr/local/bin/

8.编译测试代码

cd ~
mkdir test
cd test
vim test.cpp

test.cpp内容为:

#include <iostream>
#include <opencv2/opencv.hpp>

int main(int argc, char* argv[])
{
    std::cout << "OpenCV version " << CV_MAJOR_VERSION << "." << CV_MINOR_VERSION << "." << CV_SUBMINOR_VERSION << std::endl;
    cv::Mat img;
    img = cv::imread("example.jpg");
    cv::imshow("image", img);
    cv::waitKey(0);
    return 0;
}

9.编译可执行文件

g++ -o test test.cpp -std=c++11 `pkg-config opencv4 --libs --cflags`

10.执行可执行文件

./test

如果能够正常显示图片,则说明OpenCV 3.3.1已经成功安装。如果需要使用OpenCV 2.4.8,只需要把命令行中的opencv4改成opencv即可。

示例说明

示例一:使用OpenCV 2.4.8

如果想要使用OpenCV 2.4.8,在第5步之前,按照以下步骤进行:

1.重命名原来的OpenCV 3.3.1库

cd /usr/local/
sudo mv opencv opencv3.3.1

2.重命名OpenCV 2.4.8库

sudo mv opencv2.4.8 opencv

示例二:使用OpenCV 3.3.1

如果想要使用OpenCV 3.3.1,按照正常步骤安装即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu14.04 opencv2.4.8和opencv3.3.1多版本共存的实现方法 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • 高质量Python代码编写的5个优化技巧

    当编写Python代码时,有许多可以提高其质量和性能的技巧。下面是五个优化技巧的攻略,您可以使用这些技巧优化您的Python代码。 1. 使用生成器 生成器可以在内存方面更具优势。在使用可迭代对象时,它们允许您逐个地生成值,而不是将它们全部加载到内存中。例如,以下代码通过使用生成器计算了一个列表中所有数字的总和: def sum_list(numbers):…

    人工智能概论 2023年5月25日
    00
  • 在Linux系统上通过uWSGI配置Nginx+Python环境的教程

    下面是在Linux系统上通过uWSGI配置Nginx+Python环境的完整攻略,包含以下内容: 安装和配置Nginx 安装和运行uWSGI 编写Python应用程序 配置uWSGI和Nginx 首先,我们需要在Linux系统上安装Nginx。可以使用如下命令: sudo apt-get update sudo apt-get install nginx 安…

    人工智能概览 2023年5月25日
    00
  • Python绘制时钟的示例代码

    Python绘制时钟是一个基本的绘图程序,通过它我们可以熟悉Python 的绘图编程环境及其使用方法。下面我将为大家详细讲解如何使用Python编写时钟绘制程序。 1. 绘图库选择 一般Python绘图使用的库比较多,例如matplotlib、pycairo 等,本教程选取的是Python Tkinter 图形库,原因是它的使用简单,学习难度比较小。 2. …

    人工智能概论 2023年5月25日
    00
  • 指针操作数组的两种方法(总结)

    下面我就来详细讲解“指针操作数组的两种方法(总结)”的完整攻略。 什么是指针操作数组? 指针操作数组是指通过指针变量对数组进行操作的一种方式。指针变量存储的是一个地址,该地址指向数组的第一个元素,通过指针变量可以对数组进行遍历、访问、修改等操作。 方法1:指针通过数组名操作数组 指针通过数组名操作数组是指定义一个指向数组的指针变量,然后通过该指针变量对数组进…

    人工智能概览 2023年5月25日
    00
  • 如何通过redis减库存的秒杀场景实现

    实现秒杀场景的减库存,可以借助Redis提供的原子性操作及其高效的内存读写能力。实现方法如下: 一、设置商品初始库存 首先需要在Redis中设置商品的初始库存,可以使用Redis的set命令: set sku:10001 100 其中sku:10001是商品的标识,100是初始库存量。 二、处理秒杀请求 用户下单时需要先检查库存是否充足,如果充足就减去库存,…

    人工智能概览 2023年5月25日
    00
  • Python图片处理之图片裁剪教程

    Python图片处理之图片裁剪教程 Python有着强大的图片处理库Pillow(PIL)和OpenCV,提供了丰富的图像处理功能,其中包括图片的裁剪。 图片裁剪方法 在Pillow(PIL)中,图片裁剪的方法是crop()。crop()方法接受一个四元组参数表示裁剪区域的坐标,四元组的格式是(左上角x坐标,左上角y坐标,右下角x坐标,右下角y坐标)。裁剪后…

    人工智能概论 2023年5月25日
    00
  • python库-dotenv包 及 .env配置文件详解

    好的。首先我们要了解一下“python库-dotenv包 及 .env配置文件详解”的定义和作用。 一、定义与作用 dotenv是python中的一个工具包,作用是读取项目中的.env文件,将.env文件中定义的环境变量导入到当前的环境中供当前程序使用。.env文件是一个配置文件,其中包含的key-value键值对表示程序所需要用到的环境变量。 二、安装 在…

    人工智能概览 2023年5月25日
    00
  • Python实现判断一行代码是否为注释的方法

    判断一行代码是否为注释需要根据代码中的注释符及其在代码中的位置来进行判断。下面是判断一行代码是否为注释的方法。 方法1:判断首字符是否为注释符 一行代码如果是注释行,则通常情况下其首字符都为注释符号。Python中的注释符号是井号(#)。 在Python中,如果一行代码的首字符为井号(#),则该行代码为注释。反之,如果一行代码的首字符不为#,则该行代码为非注…

    人工智能概论 2023年5月24日
    00
合作推广
合作推广
分享本页
返回顶部