Ubuntu 16.04 安装opencv方法 C++接口

本文主要介绍安装opencv C++接口和python接口的几种方法。 首先介绍C++接口的,然后介绍Python接口的


C++接口安装

采用源码编译的安装方式,基本也就是这种方法了,首先在官网下载你想安装的版本的opencv压缩包,下载连接如下:
https://github.com/opencv/opencv/releases

这里我们选择 opencv3.4.3 版本,这个版本安装比较顺利

选择 Sourc code(zip)

Ubuntu 16.04 安装opencv方法 C++接口_第1张图片

 下载到本地。

 

首先,安装一些依赖,根据自己的情况选择,如果不知道自己安装了那些依赖,就都输入一遍,如果已经安装系统会自动跳过,不会重复安装

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 

然后,将压缩包解压,我们下载 opencv3.4.3版本,所以最后解压出来的文件夹就是opencv-3.4.3,接着,先用命令行进入该文件夹,然后执行命令,如下所示: 

Ubuntu 16.04 安装opencv方法 C++接口_第2张图片

 

然后执行命令:

cd ~/opencv-3.4.3  # 进入opencv文件夹
mkdir build # 创建build文件夹
cd build # 进入build文件夹

#cmake指令,如果没有特殊要求建议就选择默认的就可以
#注意,后面的两个点千万不能省,代表了上级目录
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..  
make -j7 # 多线程执行make任务

# 最后一步,安装库文件
sudo make install

#安装完成

中途没报错,恭喜安装成功。

 

下面我们测试一下:

目标: 通过代码载入一张图片,用opencv检测图片边缘,并把原图和边缘检测的图片输出到屏幕中。
说明makefile中通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库。
实际操作: 我的test.cpp文件和makefile文件创建在同一个目录,进入该目录下执行以下命令就OK了。

test.cpp:

#include 
#include 
#include 
#include 
#include 
using namespace cv;
using namespace std;


 
using namespace std;
using namespace cv;
 
int threshold_value = 100, threshold_max = 255;
int threshold_type = 0, threshold_type_max = 4;
string outwindow = "threshold img";
Mat src, dst;
int main(){
    Mat src1;
    src1 = imread("name.jpg");
    resize(src1, src, Size(src1.cols, src1.rows)); 
    //resize(src1, src, Size(src1.cols/2, src1.rows/2)); //缩小一半 
    if (!src.data){
        printf("cannot load image ...");
        return -1;
    }
    namedWindow("src img", CV_WINDOW_AUTOSIZE);
    imshow("src img", src);
    
    Mat src_gray;
    cvtColor(src, src_gray, CV_BGR2GRAY);
    //canny边缘检测算子
    Canny(src_gray, dst, 100, 200);
    imshow("canny", dst);
    imshow("canny ", ~dst); //dst按照像素值取反
    
    waitKey(0);
    return 0;
}

这里 name.jpg 请输入具体图片的名字 如:hua.jpg

 

makefile:

INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
	g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
	g++ -c $(SOURCES)
clean:
	rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
	g++ -I $(INCLUDE) -o $@ -c $<

注意:顶格,在不同的版本有所不同。

解决方案:先删除顶格,再按一下tab 键。

 

用cd命令进入放置 makefile,test.cpp (它俩的目录)的地方。

执行下列命令:

make
./test image.jpg

执行结果:

 

Ubuntu 16.04 安装opencv方法 C++接口_第3张图片

 

安装成功啦!

 

如果安装失败,可以参考:Ubuntu 16.04 安装opencv方法失败 分析

 

 

你可能感兴趣的:(【Linux,开发与应用,】)