OpenCV学习笔记:opencv_core模块
一,简介:
opencv最基础的库。包含exception,point,rect,size,slice,vector,matrix,image等数据结构,和相应的操作函数,以及一些基础算法。
二,分析:
opencv_core模块src文件包括如下图所示:
下面按照依赖关系来分析各个头文件的作用(后面的头文件依赖于前面的头文件):
Header Files/cvconfig.h ,用于编译选项开关,可配置第三方库的支持;
Header Files/opencv_modules.hpp, 用于编译选项开关,配置opencv内部模块的裁剪;
version.hpp, 定义了opencv的版本号;
cvdef.h,用于设置编译平台(gcc,msvc等)相关的选项和SIMD指令的支持,定义了OpenCV基础数据类型(CV_8UC1等),以及平台相关原子操作函数;
types_c.h,为C/C++头文件,定义了C操作的OpenCV基础数据结构,包括:Cv32suf,Cv64suf,CVStatus,CvRNG,IplImage,IplTileInfo,IplROI,IplConvKernel,IplConvKernelFP,CvMat,CvMatND,CvSet,CvSparesMat,CvSparseMatIterator,cvHistType,CvHistogram,CvRect,CvTermCriteria,CvPoint,CvPoint2D32f,CvPoint3D32f,CvPoint2D64f,CvPoint3D64f,CvSize,CvSize2D32f,CvBox2D,CvLineIterator,CvSlice,CvScalar,CvMemBlock,CvMemStorage,CvMemStoragePos,CvSeqBlock,CvSeq,CvSetElem,CvSet,CvGraphEdge,CvGraphVtx,CvGraphVtx2D,CvGraph,CvChain,CvContour,CvPoint2DSeq,CvSeqWriter,CvSeqReader,CvAttrList,CvTypeInfo,CvString,CvStringHashNode,CvFileNode,CvTypeInfo,CvPluginFuncInfo,CvModuleInfo,以及一些相关操作函数;
types.hpp,为C++ only头文件,定义了C++操作的OpenCV基础数据结构,包括:Complex,Point,Point3,Size,Rect,RotatedRect,Range,Scalar,KeyPoint,DMatch,TermCriteria,Moments,以及一些相关操作函数;
cvstd.inl.hpp,cvstd.hpp,如果没有定义OPENCV_NOSTL宏(即使用c++ std库),则定义了FileNode,Allocator,Ptr,String以及与std数据类型兼容的一些操作,并且定义了相关数据类型的输入输出函数;
base.hpp,定义了error code等;
Cuda Headers/*.*,gpu*,opengl.hpp,这些是并行加速的相关数据结构函数,目前不做分析,且后记博客也将跳过这些文件;
三,总结:
未完待更新!