OpenCV数据结构(core)与基本图像处理算法(imgproc)拉取

OpenCV数据结构(core)与基本图像处理算法(imgproc)拉取

 

./modules/core中包含着OpenCV常用的一些数据结构,如Mat,Rect等。

 

      

将./src下的precomp.hpp重命名为precomp_core.hpp,所有的./*.cpp中的#include “precomp.hpp”都要改为#include “precomp_core.hpp”,将所有头文件放入新建文件夹include中,所有源文件放入新建文件夹src中,注意所有的文件中,包含文件都要修改,如

#include "opencv2/core/gpumat.hpp"

#include "opencv2/core/opengl_interop.hpp"

不再需要前面的路径了,直接改为:

#include "gpumat.hpp"

#include "opengl_interop.hpp"

 

 

 

 

CMakeLists如下写:

CMAKE_MINIMUM_REQUIRED( VERSION 3.0 )

PROJECT( Matdebug )

AUX_SOURCE_DIRECTORY( . DIR_MAIN )

set(Include_path "${CMAKE_CURRENT_SOURCE_DIR}/include" CACHE STRING "" FORCE)

INCLUDE_DIRECTORIES(${Include_path})

FILE(GLOB_RECURSE INCS "*.h" "*.hpp")

#FILE(GLOB_RECURSE HEADERS *.h *.hpp)

SOURCE_GROUP("Include" FILES ${HEADERS} )

AUX_SOURCE_DIRECTORY(src DIR_SRCS)

ADD_EXECUTABLE( Matdebug ${DIR_SRCS} ${INCS} )

#TARGET_LINK_LIBRARIES(  Matdebug ${OpenCV_LIBS} )

 

./modules/highgui中包含着OpenCV的一些界面相关及读写操作等源码,由于对图像的读写操作需要依赖于一些图像格式的库,所以未做深究。

./modules/imgproc中包含着OpenCV的基础图像算法,同样,如core中源码一样,首先将./src下的precomp.hpp重命名为precomp_imgproc.hpp,所有的./*.cpp中的#include “precomp.hpp”都要改为#include “precomp_imgproc.hpp”,将所有头文件放入新建文件夹include中,所有源文件放入新建文件夹src中,修改所有文件的包含文件。

注意:这个precomp_core.hppprecomp_imgproc.hpp有部分#define产生的重复,编译时会发出警告,如:

#define CV_FAST_CAST_8U(t)  (assert(-256 <= (t) && (t) <= 512), icvSaturate8u_cv[(t)+256])

#define CV_CALC_MIN_8U(a,b) (a) -= CV_FAST_CAST_8U((a) - (b))

#define CV_CALC_MAX_8U(a,b) (a) += CV_FAST_CAST_8U((b) - (a))

可以加入#ifndef 和#endif修改,但是没有报错,所有就没有改。

 

没有highgui读图的函数,如何进行试验呢,考虑传进来的是数据流如指针等,在仿真时,就先将图像保存为/.txt文件(此时依赖了OpenCV环境)

然后再将保存的TXT数据读入,存到Mat结构中(此时的Mat不基于OpenCV库)

如做人脸识别,需要用到modules/objdetect中的一些方法,同上方法拉出,新建main.cpp。

如此这般,在VS中就可以编译通过。

将文件拷到Linux环境下进行编译:

 

需要进行一些修改,在core/system.cpp会报错,加上#include 要添加多线程的库,并且CMakeLists.txt也需要修改:

#SET(THREADS_PREFER_PTHREAD_FLAG ON)

FIND_PACKAGE( Threads REQUIRED)

TARGET_LINK_LIBRARIES( Matdebug ${CMAKE_THREAD_LIBS_INIT})

在LoadData文件中,由于用了迭代器进行写入,所以在LoadData.cpp中需要包含#include

     

在终端进入该路径,(注意CMake的版本)

mkdir build

cd build/

cmake ../

make

运行:./ Matdebug

你可能感兴趣的:(OpenCV,OpenCV)