1. 下载
https://github.com/opencv/opencv/releases
https://github.com/opencv/opencv_contrib/releases
下载两个压缩包解压出来。
2. Cmake
cd opencv-4.2.0
mkdir build && cd build
如果只是单纯使用cpu的C++版本的opencv,可以使用以下cmake命令
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/test/opt/opencv \
-D WITH_CUDA=OFF \
-D WITH_IPP=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/test/opencv/opencv_contrib-4.2.0/modules \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_hdf=OFF \
-D BUILD_EXAMPLES=ON ..
make -j48
make install
安装完成后,在/home/test/opt/opencv/lib64/cmake/opencv4/
会有一个OpenCVConfig.cmake
文件,这个文件可以告诉cmake去哪里找我们自己编译的opencv库。
2.1 添加到系统环境
在~/.bashrc
中添加如下变量:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/findhao/opt/opencv4.5.0/lib64/pkgconfig
export LD_LIBRARY_PATH=/home/findhao/opt/opencv4.5.0/lib64/:$LD_LIBRARY_PATH
3. 编译使用opencv的程序
smooth.cpp
#include <iostream>
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
using namespace std;
using namespace cv;
/// Global Variables
int DELAY_CAPTION = 1500;
int DELAY_BLUR = 100;
int MAX_KERNEL_LENGTH = 31;
Mat src; Mat dst;
char window_name[] = "Smoothing Demo";
int main( int argc, char ** argv )
{
/// Load the source image
const char* filename = argc >=2 ? argv[1] : "lena.jpg";
src = imread( "/home/test/tmp/test/lena.jpg", IMREAD_COLOR );
if (src.empty())
{
printf(" Error opening image\n");
printf(" Usage:\n %s [image_name-- default lena.jpg] \n", argv[0]);
return EXIT_FAILURE;
}
GaussianBlur( src, dst, Size( 13, 13 ), 0, 0 );
imwrite("out.jpg", dst);
return 0;
}
CMakeList.txt
# cmake needs this line
cmake_minimum_required(VERSION 3.1)
# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
# Define project name
project(smooth)
# 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
set(OpenCV_DIR /home/test/opt/opencv/lib/cmake/opencv4/)
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 " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
add_definitions("-Wall -g")
# Declare the executable target built from your sources
add_executable(smooth smooth.cpp)
# Link your application with OpenCV libraries
target_link_libraries(smooth PRIVATE ${OpenCV_LIBS})
cmake编译smooth程序运行即可。
Comments