opencv裁剪和编译

opencv裁剪和编译

0. 准备工作

0.1 下载和安装Eigen

地址

复制代码
https://eigen.tuxfamily.org/index.php?title=Main_Page

对于opencv编译,需要增加EIGEN_INCLUDE_PATH和开启WITH_EIGEN

复制代码
-DWITH_EIGEN=ON -DEIGEN_INCLUDE_PATH=./3rd/eigen-3.4.0

1. 实际脚本

编译脚本如下:

shell 复制代码
chcp 65001
@echo off

@REM echo 删除build-x64目录
@REM rd /s /q build-x64
@REM echo 删除build-x86目录
@REM rd /s /q build-x86
@REM echo 删除3rd/install目录
@REM rd /s /q 3rd/install

echo 删除build-x64-stitching目录
rd /s /q build-x64-stitching
echo 删除build-x86目录
rd /s /q build-x86-stitching
echo 删除3rd/install-stitching目录
rd /s /q 3rd/install-stitching


@REM echo "省略--prefix ./3rd/install/Debug"

@REM echo 开始编译OpenCV x64

@REM cmake -S ./3rd/opencv-4.10.0 -B build-x64 -A x64 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -D WITH_ZLIB=OFF -DCMAKE_INSTALL_PREFIX=./3rd/install

@REM cmake --build build-x64 --config Release
@REM cmake --build build-x64 --config Debug
@REM cmake --install build-x64 --config Release
@REM cmake --install build-x64 --config Debug

@REM echo 开始编译OpenCV x86
@REM cmake -S ./3rd/opencv-4.10.0 -B build-x86 -A Win32 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -D WITH_ZLIB=OFF -DCMAKE_INSTALL_PREFIX=./3rd/install

@REM cmake --build build-x86 --config Release
@REM cmake --build build-x86 --config Debug
@REM cmake --install build-x86 --config Release
@REM cmake --install build-x86 --config Debug

echo "编译eigen-纯头文件库"
cmake -S ./3rd/eigen-3.4.0 -B build-eigen-x64 -A x64 -DCMAKE_INSTALL_PREFIX=./3rd/eigen-install
cmake --build build-eigen-x64 --config Release
cmake --build build-eigen-x64 --config Debug
cmake --install build-eigen-x64 --config Release
cmake --install build-eigen-x64 --config Debug

@REM echo "编译eigen x86"
@REM cmake -S ./3rd/eigen-3.4.0 -B build-eigen-x86 -A Win32 -DCMAKE_INSTALL_PREFIX=./3rd/eigen-install
@REM cmake --build build-eigen-x86 --config Release
@REM cmake --build build-eigen-x86 --config Debug
@REM cmake --install build-eigen-x86 --config Release
@REM cmake --install build-eigen-x86 --config Debug


echo "编译stitching-x64"
cmake -S ./3rd/opencv-4.10.0 -B build-x64-stitching -A x64 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs,highgui,features2d,flann,calib3d,photo,video,stitching -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -DWITH_ZLIB=ON -DWITH_EIGEN=ON -DEIGEN_INCLUDE_PATH=D:/code_company/image_process/3rd/eigen-3.4.0 -DCMAKE_INSTALL_PREFIX=./3rd/install-stitching

@REM cmake -S ./3rd/opencv-4.10.0 -B build-x64-stitching -A x64 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs,highgui,features2d,flann,calib3d,photo,video,stitching -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -DWITH_ZLIB=ON -DCMAKE_INSTALL_PREFIX=./3rd/install-stitching

cmake --build build-x64-stitching --config Release
cmake --build build-x64-stitching --config Debug
cmake --install build-x64-stitching --config Release
cmake --install build-x64-stitching --config Debug


echo "编译stitching-x86"
cmake -S ./3rd/opencv-4.10.0 -B build-x86-stitching -A Win32 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs,highgui,features2d,flann,calib3d,photo,video,stitching -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -DWITH_ZLIB=ON -DWITH_EIGEN=ON -DEIGEN_INCLUDE_PATH=D:/code_company/image_process/3rd/eigen-3.4.0 -DCMAKE_INSTALL_PREFIX=./3rd/install-stitching

@REM cmake -S ./3rd/opencv-4.10.0 -B build-x86-stitching -A Win32 -DBUILD_SHARED_LIBS=OFF -DBUILD_opencv_js=OFF -DBUILD_LIST=core,imgproc,imgcodecs,highgui,features2d,flann,calib3d,photo,video,stitching -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_ts=OFF -DBUILD_WITH_DEBUG_INFO=OFF -DWITH_ITT=OFF -DWITH_OPENCL=OFF -DWITH_TBB=OFF -DWITH_IPP=OFF -DWITH_QT=OFF -DWITH_GTK=OFF -DWITH_OPENGL=OFF -DWITH_FFMPEG=OFF -DWITH_JPEG=ON -DWITH_PNG=ON -DWITH_WEBP=OFF -DWITH_TIFF=OFF -DWITH_1394=OFF -DWITH_V4L=OFF -DWITH_GSTREAMER=OFF -DWITH_PROTOBUF=OFF -DWITH_ADE=OFF -DWITH_ZLIB=ON -DCMAKE_INSTALL_PREFIX=./3rd/install-stitching

cmake --build build-x86-stitching --config Release
cmake --build build-x86-stitching --config Debug
cmake --install build-x86-stitching --config Release
cmake --install build-x86-stitching --config Debug

2. 使用opencv

eigen编译后的产物复制到3rd或系统目录,如果是自定义目录则需要自己追加CMAKE_PREFIX_PATH

shell 复制代码
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SOURCE_DIR}/3rd/eigen-install")
find_package(Eigen3 REQUIRED)
# 先导入Eigen3
set(OpenCV_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rd/install/${ARCH}/vc17/staticlib")
find_package(OpenCV REQUIRED)