编译opencv
1.安装cmake和cmake-gui工具:
sudo apt install cmake
sudo apt install cmake-gui
2.在命令行输入cmake-gui ,打开cmake-gui,在where is the source code,输入opencv的项目,在where to build the binaries,输入项目的编译文件build:

3.然后点击configure,出现一下的界面 :

4.选择第三个选项,得到以下的界面,选择opencv源文件的tootchain文件:opencv-3.4.11/platforms/linux/aarch64-gnu.toolchain.cmake

最后点击generate,在build文件里编译命令:make -j8
编译ncnn:跟上面的步骤雷同:

选择编译链,ncnn-master/toolchains/aarch64-linux-gnu.toolchain.cmake,点击configure,得到的变量,有两处要改:
1.ncnn_build_tools的沟要去掉

2.opencv_dir选择到opencv编译好的build

最后在点击configure和generate,最后编译make -j8,并且安装:make install DESTDIR=ncnn,得到install文件夹,里面包含include和ncnn.a文件。
编译自己的项目,同样的步骤:先写cmakelists:
cmake_minimum_required(VERSION 2.8)
project(FaceDetector)
add_definitions(-std=c++11)
add_definitions("-Wall")
add_definitions(-DUNICODE -D_UNICODE)
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/ncnn/include/ncnn)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/ncnn/lib)
find_package( OpenCV REQUIRED )
if (NOT OpenCV_FOUND)
message(FATAL_ERROR "opencv Not Found!")
else()
message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
include_directories(${OpenCV_INCLUDE_DIRS})
endif (NOT OpenCV_FOUND)
set(SRC_LIB
src/ocr.cpp
src/RRLib.cpp
)
add_library(text_recognition SHARED ${SRC_LIB} )
target_link_libraries(text_recognition ncnn ${OpenCV_LIBS} )
set(SRC src/main.cpp)
add_executable(Text_recognition ${SRC})
target_link_libraries(Text_recognition text_recognition ncnn ${OpenCV_LIBS})
首先需要从ncnn项目拷贝toolchain文件夹和install文件夹(install重新命名为ncnn)到自己项目的根目录,然后打开cmake-gui,步骤和上面一样,tooltrain,在拷贝的ncnn tooltrain文件夹里面找,同时也要设置好opencv的build路径,最后就可以成功编译。 |