【codeBase_C++_OpenCV】实用技巧总结
逐渐更新一些工作与科研中的通用代码片段,便于自己查找并拼成新的应用程序。
在Windows下openCV工程的CMakeLists.txt样例
在E盘建立E:\csdn文件夹,下载OpenCV4.5.5的Windows二进制包并将其安装到E:\csdn\third_party文件夹下;假设已经安装好VS2019。
在E盘建立E:\csdn\testOpenCV文件夹,并建立相应的include、lib、src文件夹,编写如下的CMakeLists.txt。
文件夹结构如下:
CMakeLists.txt如下:
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(testOpenCV)
set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Bins)
set(EXECUTABLE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Bins)
add_compile_options(-execution-charset:utf-8)
add_compile_options(-source-charset:utf-8)
include_directories(
include
)
link_directories(
lib
)
find_package(OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable(${PROJECT_NAME}
src/main.cpp
)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
set( OpenCV_DLLS ${OpenCV_DIR}/../bin/opencv_world455.dll)
add_custom_command( TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${OpenCV_DLLS}
$<TARGET_FILE_DIR:${PROJECT_NAME}>)
建立自动构建与测试脚本my_build_and_test.bat
@echo on
rd /q /s Bins
rd /q /s build
mkdir build
cd build
call "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
@echo on
cmake .. -DCMAKE_PREFIX_PATH="../third_party/opencv-4.5.5/build/x64/vc15/lib" ^
-DCMAKE_BUILD_TYPE=Release ^
-Wno-dev
cmake --build . --config Release
cd ..
cd Bins/Release
testOpenCV.exe ../../data/logo.jpg
在src下简单建立main.cpp文件,内容如下:
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
cv::destroyAllWindows();
std::string filePath(argv[1]);
cv::Mat image = cv::imread(argv[1]);
cv::imshow("LOGO",image);
cv::waitKey(-1);
return 0;
}
双击my_build_and_test.bat,自动构建并测试,显示出图片文件data/logo.jpg
本文分享了一种比较自己认为的比较好的C++代码结构,便于在VSCode中进行代码调试。