下载opencv
安装g++,cmake,make,wget ,unzip,libgtk2.0-dev,libcanberra-gtk-module,
apt-get install pkg-config
然后和官网的一样
wget -O opencv.zip https://github.com/opencv/opencv/archive/master.zip
unzip opencv.zip
mv opencv-master opencv
mkdir -p build && cd build
进入build文件夹
cmake ../opencv
make -j4
sudo make install
就完成了:
By default OpenCV will be installed to the /usr/local
directory, all files will be copied to following locations:
/usr/local/bin
- executable files/usr/local/lib
- libraries (.so)/usr/local/cmake/opencv4
- cmake package/usr/local/include/opencv4
- headers/usr/local/share/opencv4
- other files (e.g. trained cascades in XML format)
Since /usr/local
is owned by the root user, the installation should be performed with elevated privileges (sudo
):
安装好之后需要配置一下
在文件夹: /usr/local/lib 里面新建一个pkg-config 文件夹,在里面新建一个opencv.pc文件
sudo madir /usr/local/lib/pkg-config
sudo touch /usr/local/lib/pkg-config/opencv.pc
sudo vim /usr/local/lib/pkg-config/opencv.pc
写入以下内容:
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.5.3
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
其中路径和版本是根据自己安装位置填写
然后添加环境变量:
sudo vim ~/.bashrc
在最后追加:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkg-config
至此配置完成
新建一个cpp文件
#include<iostream>
#include<string>
#include<stdio.h>
#include<unistd.h>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat sss;
sss=imread("/home/jarvis/Desktop/work/picture/beach.jpg");
imshow("Test",sss);
waitKey(0);
cin>>a;
cout<<a<<endl;
return 0;
}
使用命令
g++ `pkg-config opencv --cflags` hello.cpp -o hello `pkg-config opencv --libs`
注意里面的是反引号` `表示bash命令,也就是Tab键上面与~符号同一个键。
也可用cmake编译,先写一个CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(hello)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(hello hello.cpp)
target_link_libraries(hello ${OpenCV_LIBS})
还可以用make编译,先写一个Makefile文件
TARGET=hello
all:$(TARGET)
CXX:g++
INCLUDE = .
CFLAGS=`pkg-config opencv --cflags` `pkg-config opencv --libs`
hello: hello.cpp
$(CXX) $^ -o $@ $(CFLAGS)