本文主要介绍安装opencv C++接口和python接口的几种方法。 首先介绍C++接口的,然后介绍Python接口的
C++接口安装
采用源码编译的安装方式,基本也就是这种方法了,首先在官网下载你想安装的版本的opencv压缩包,下载连接如下:
https://github.com/opencv/opencv/releases
这里我们选择 opencv3.4.3 版本,这个版本安装比较顺利
选择 Sourc code(zip)
下载到本地。
首先,安装一些依赖,根据自己的情况选择,如果不知道自己安装了那些依赖,就都输入一遍,如果已经安装系统会自动跳过,不会重复安装
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,接着,先用命令行进入该文件夹,然后执行命令,如下所示:
然后执行命令:
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 <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <math.h>
#include <iostream>
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方法失败 分析