函数:
cvCreateImageHeader只创建图像信息头,不分配数据单元cvCreateImageData创建分配数据单元,合起来就是:cvCreateImage
cvInitImageHeader可以重新初始化图像头
IplImage*cvCreateImage(CvSizesize,intdepth,intchannels);
voidcvReleaseImage(IplImage**image);
IplImage*cvCloneImage(constIplImage*image);
voidcvSetImageROI(IplImage*image,CvRectrect);
voidcvResetImageROI(IplImage*image);等效于:
cvSetImageROI(image,cvRect(0,0,image->width,image->height));cvSetImageCOI(image,0);
CvRectcvGetImageROI(constIplImage*image);
voidcvCopyImage(IplImage*src,IplImage*dst);//如果目标较小,可自动重新分配单元
voidcvRunningAvg(IplImage*imgY,IplImage*imgU,doublealpha,IplImage*mask=0);
//下面的函数可以在8U、32F之间进行转换
voidcvConvertScale(constCvArr*src,CvArr*dst,doublescale=1,doubleshift=0);
//矩阵与图像之间互相赋值转换
voidcvSetImageData(IplImage*image,void*data,intstep);
voidcvSetData(CvArr*arr,void*data,intstep);//之前HeadershouldbeinitializedbeforeusingcvCreateImageHeader,cvInit*HeaderorcvMat(incaseofmatrix)function
///////////////////////////////
//高速的!:
voidcvGetImageRawData(constIplImage*image,uchar**data,int*step,CvSize*roiSize);
CvMat*cvGetMat(constCvArr*arr,CvMat*header,int*coi=NULL,intallowND=0);
IplImage*cvGetImage(constCvArr*arr,IplImage*image_header);
voidcvSplit(constCvArr*src,CvArr*dst0,CvArr*dst1,CvArr*dst2,CvArr*dst3);
//以下两句联合使用,可以相当于:CvMat*cvCreateMat(introws,intcols,inttype);
CvMat*cvCreateMatHeader(introws,intcols,inttype);
voidcvCreateData(CvArr*arr);
//以下这句可以重新初始化矩阵
voidcvInitMatHeader(CvMat*mat,introws,intcols,inttype,void*data=0,intstep=CV_AUTOSTEP);
CvMat*cvCreateMat(introws,intcols,inttype);
voidcvReleaseMat(CvMat**mat);
CvMat*cvCloneMat(constCvMat*mat);
CvSizecvGetSize(constCvArr*arr);
//读取、设置矩阵元素
doublecvmGet(constCvMat*mat,introw,intcol);
voidcvmSet(CvMat*mat,introw,intcol,doublevalue);
//得到图像或矩阵块中的子矩阵
CvMat*cvGetSubArr(constCvArr*arr,CvMat*subarr,CvRectrect);
//或者得到某元素的字符指针:uchar*cvGetAtPtr(constCvArr*arr,introw,intcol=0);
//得到行、列、对角线子矩阵:cvGetRowcvGetColcvGetDiag
//给矩阵赋值,一般是先创建一个矩阵头,然后把一个数据块的指针用SetData或InitMatHeader给它。另外注意,二者的数据类型必须一致!
voidcvAdd(constCvArr*A,constCvArr*B,CvArr*C,constCvArr*mask=0);
voidcvSub(constCvArr*A,constCvArr*B,CvArr*C,constCvArr*mask=0);
CvScalarcvDet(constCvArr*A);
CvScalarcvTrace(constCvArr*A);
voidcvInvert(constCvArr*A,CvArr*B);
voidcvMulTransposed(constCvArr*A,CvArr*C,intorder);
voidcvFlip(constCvArr*A,CvArr*B,intflipMode);
doublecvDotProduct(constCvArr*src1,constCvArr*src2);
voidcvCrossProduct(constCvArr*src1,constCvArr*src2,CvArr*dst);
voidcvTranspose(constCvArr*src,CvArr*dst);
voidcvFlip(constCvArr*A,CvArr*B,intflipMode);
doublecvDet(constCvArr*mat);
intcvSolve(constCvArr*src1,constCvArr*src2,CvArr*dst,intmethod=CV_LU);
voidcvEigenVV(CvArr*mat,CvArr*evects,CvArr*evals,doubleeps=0);
voidcvSet(CvArr*arr,CvScalarvalue,constCvArr*mask=NULL);
//重新调整矩阵元素(只是指针调整,好像)
CvMat*cvReshape(constCvArr*A,CvMat*header,intnewNumChannels,intnewRows=0);
//一般形式的矩阵运算
voidcvScaleAdd(constCvArr*A,CvScalarS,constCvArr*B,CvArr*C);
voidcvMatMulAdd(constCvArr*A,constCvArr*B,constCvArr*C,CvArr*D);
voidcvMatMulAddS(constCvArr*A,CvArr*C,constCvArr*M,constCvArr*V=0);
voidcvGEMM(constCvArr*src1,constCvArr*src2,doublealpha,constCvArr*src3,doublebeta,CvArr*dst,inttABC=0);
voidcvMinMaxLoc(constCvArr*arr,double*min_val,double*max_val,
CvPoint*min_loc=NULL,CvPoint*max_loc=NULL,constCvArr*mask=NULL);
intcvSolve(constCvArr*src1,constCvArr*src2,CvArr*dst,intmethod=CV_LU);least-squares
数据类型:
CvScalarcvRealScalar
CvPoint
CvPoint2D32f
CvPoint3D32f
CvSize强制类型转换的时候用cvSize
CvRect
CvMat*
CV_RGB(255,255,255)
IplConvKernel*是不是模板核专用的呢??
IplImage*
intnSize;/*sizeof(IplImage)*/
intnChannels;/*MostofOpenCVfunctionssupport1,2,3or4channels*/
intdepth;/*pixeldepthinbits:
intorigin;/*0-top-leftorigin,1-bottom-leftorigin(Windowsbitmapsstyle)*/
intwidth;/*imagewidthinpixels*/
intheight;/*imageheightinpixels*/
struct_IplROI*roi;/*imageROI.whenitisnotNULL,thisspecifiesimageregiontoprocess*/
void*imageId;/*ditto*/
intimageSize;/*imagedatasizeinbytes=image->height*image->widthStep
char*imageData;/*pointertoalignedimagedata*/
intwidthStep;/*sizeofalignedimagerowinbytes*/
IlpImage和CvMat的傻瓜统一形式即是:CvArr
相关推荐
OPENCV函数手册,OPENCV常用函数速查,详细使用例子OpenCV概述 FAQ中文 CxCore中文参考手册 基础结构 数组操作 动态结构 绘图函数 数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册
OpenCV函数众多,有了查询工具可以很快查询出所需函数
opencv函数手册包含最新的GPU编程内容,基本包含opencv近期新加的函数与数据类型,非常好的编程手册。
opencv中常见的Mat IplImage CvMat IplImage*数据类型转换函数
基础结构 • 数组操作 ...o 运行时类型信息和通用函数 ------------ --- • 其它混合函数 • 错误处理和系统函数 o 错误处理 o 系统函数 谭俊河 • 依字母顺序函数列表 • 例子列表 -----
OpenCV的基本数据类型 CvMat矩阵结构 IplImage数据结构 矩阵和图像操作 绘图 数据存储 集成性能基元 小结 练习 第4章 细说HighGUI 一个可移植的图形工具包 创建窗口 载入图像 显示图像 视频的处理 ConvertImage函数 ...
数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 CvImage类参考手册 CvImage中的陷阱和BUG Cv中文参考手册 图像处理 结构分析 ...
1. 数据类型 CV_8UC1:8位无符号单通道矩阵 CV_32FC2:32位浮点数双通道矩阵 (数据数有三种:U,F,S有符号整数)
开始准备 初试牛刀—— 显示图像 第二个程序—— 播放AVI视频 视频播放控制 一个简单的变换 一个复杂一点的变换 从摄像机读入数据 写入AVI视频文件 小结 练习 第3章 初探OpenCV OpenCV的基本数据类型 CvMat矩阵结构 ...
opencv经典学习书籍,和帮助文档,共有四分。书籍是入门学习很好用,文档是参训函数和数据类型用的,很方便
mexopencv是matlab使用opencv的开发工具包,提供了很多OpenCV的api函数接口,还包含MATLAB的数据类型和OpenCV的数据类型转换的c++类等。
A、Java B、C/C++ C、Python D、JavaScript 4、下列选项中,可在NumPy中表示复数的数据类型是( )。 A、int B、single C、complex64 D、double 5、NumPy中可执行矩阵乘法的运算符是( ) A、* B、** C、/ D、@ 6、...
数据保存和运行时类型信息 6. 其它混合函数 7. 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 CvImage类参考手册 CvImage中的陷阱和BUG
mexopencv, 一种用于OpenCV库的matlab mex函数集合及开发 mexopencv OpenCV库中 MATLAB MEX函数的集合与开发包。软件包提供了与数以百计的OpenCV api接口的MATLAB... 软件包还包含一个 C 类,它在matlab数据类型和OpenC
数据保存和运行时类型信息 其它混合函数 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 Cv中文参考手册 图像处理 结构分析 运动分析与对象跟踪 模式识别 照相机定标和三维重建 HighGUI...
5. 数据保存和运行时类型信息 6. 其它混合函数 7. 错误处理和系统函数 机器学习中文参考手册 CvAux中文参考手册 CvvImage类参考手册 CvImage类参考手册 CvImage中的陷阱和BUG Cv中文参考手册 1. 图像处理 2. 结构...
英文版 openCV参考手册 对openCV数据类型和其函数有很详细的说明
1.3.2 (2) 矩阵数据类型: 1.3.3 (3) 图像数据类型: 1.3.4 (4) 头文件: 1.4 4、编译建议 1.4.1 (1) Linux: 1.4.2 (2) Windows: 1.5 5、C++例程 2 二、GUI 指令 2.1 1、窗口管理 2.1.1 (1) 创建和...
输入一个CvCapture 类型的指针,该函数主要功能是将视频文件的下一帧加载到内存。与 cvLoadImage的不同之处是,该函数不重新分配内存空间。 C=cvWaitKey(33) 当前帧被显示后,等待 33毫秒。如果用户触发了一个按键...
基础结构 数组操作 初始化 获取元素和数组子集 ...运行时类型信息和通用函数--------------- 其它混合函数********************************************* 错误处理和系统函数 错误处理 系统函数