Opencv中函数的用法

Opencv中函数的用法
Opencv中函数的用法

1、cvLoadImage:将图像文件加载至内存;

2、cvNamedWindow:在屏幕上创建一个窗口;

3、cvShowImage:在一个已创建好的窗口中显示图像;

4、cvWaitKey:使程序暂停,等待用户触发一个按键操作;

5、cvReleaseImage:释放图像文件所分配的内存;

6、cvDestroyWindow:销毁显示图像文件的窗口;

7、cvCreateFileCapture:通过参数设置确定要读入的AVI文件;

8、cvQueryFrame:用来将下一帧视频文件载入内存;

9、cvReleaseCapture:释放CvCapture结构开辟的内存空间;

10、cvCreateTrackbar:创建一个滚动条;

11、cvSetCaptureProperty:设置CvCapture对象的各种属性;

12、cvGetCaptureProperty:查询CvCapture对象的各种属性;

13、cvGetSize:当前图像结构的大小;

14、cvSmooth:对图像进行平滑处理;

15、cvPyrDown:图像金字塔,降采样,图像缩小为原来四分之一;

16、cvCanny:Canny边缘检测;

17、cvCreateCameraCapture:从摄像设备中读入数据;

18、cvCreateVideoWriter:创建一个写入设备以便逐帧将视频流写入视频文件;搜索

19、cvWriteFrame:逐帧将视频流写入文件;

20、cvReleaseVideoWriter:释放CvVideoWriter结构开辟的内存空间;

21、CV_MAT_ELEM:从矩阵中得到一个元素;

22、cvAbs:计算数组中所有元素的绝对值;

23、cvAbsDiff:计算两个数组差值的绝对值;

24、cvAbsDiffS:计算数组和标量差值的绝对值;

25、cvAdd:两个数组的元素级的加运算;

26、cvAddS:一个数组和一个标量的元素级的相加运算;

27、cvAddWeighted:两个数组的元素级的加权相加运算(alpha运算);

28、cvAvg:计算数组中所有元素的平均值;

29、cvAvgSdv:计算数组中所有元素的绝对值和标准差;

30、cvCalcCovarMatrix:计算一组n维空间向量的协方差;

31、cvCmp:对两个数组中的所有元素运用设置的比较操作;

32、cvCmpS:对数组和标量运用设置的比较操作;

33、cvConvertScale:用可选的缩放值转换数组元素类型;

34、cvCopy:把数组中的值复制到另一个数组中;

35、cvCountNonZero:计算数组中非0值的个数;

36、cvCrossProduct:计算两个三维向量的向量积(叉积);

37、cvCvtColor:将数组的通道从一个颜色空间转换另外一个颜色空间;

38、cvDet:计算方阵的行列式;

39、cvDiv:用另外一个数组对一个数组进行元素级的除法运算;

40、cvDotProduct:计算两个向量的点积;

41、cvEigenVV:计算方阵的特征值和特征向量;

42、cvFlip:围绕选定轴翻转;

43、cvGEMM:矩阵乘法;

44、cvGetCol:从一个数组的列中复制元素;

45、cvGetCols:从数据的相邻的多列中复制元素;

46、cvGetDiag:复制数组中对角线上的所有元素;

47、cvGetDims:返回数组的维数;

48、cvGetDimSize:返回一个数组的所有维的大小;

49、cvGetRow:从一个数组的行中复制元素值;

50、cvGetRows:从一个数组的多个相邻的行中复制元素值;

51、cvGetSize:得到二维的数组的尺寸,以CvSize返回;

52、cvGetSubRect:从一个数组的子区域复制元素值;

53、cvInRange:检查一个数组的元素是否在另外两个数组中的值的范围内;

54、cvInRangeS:检查一个数组的元素的值是否在另外两个标量的范围内;

55、cvInvert:求矩阵的逆;

56、cvMahalonobis:计算两个向量间的马氏距离;

57、cvMax:在两个数组中进行元素级的取最大值操作;

58、cvMaxS:在一个数组和一个标量中进行元素级的取最大值操作;

59、cvMerge:把几个单通道图像合并为一个多通道图像;

60、cvMin:在两个数组中进行元素级的取最小值操作;

61、cvMinS:在一个数组和一个标量中进行元素级的取最小值操作;

62、cvMinMaxLoc:寻找数组中的最大最小值;

63、cvMul:计算两个数组的元素级的乘积(点乘);

64、cvNot:按位对数组中的每一个元素求反;

65、cvNormalize:将数组中元素进行归一化;

66、cvOr:对两个数组进行按位或操作;

67、cvOrs:在数组与标量之间进行按位或操作;

68、cvReduce:通过给定的操作符将二维数组简为向量;

69、cvRepeat:以平铺的方式进行数组复制;

70、cvSet:用给定值初始化数组;

71、cvSetZero:将数组中所有元素初始化为0;

72、cvSetIdentity:将数组中对角线上的元素设为1,其他置0;

73、cvSolve:求出线性方程组的解;

74、cvSplit:将多通道数组分割成多个单通道数组;

75、cvSub:两个数组元素级的相减;

76、cvSubS:元素级的从数组中减去标量;

77、cvSubRS:元素级的从标量中减去数组;

78、cvSum:对数组中的所有元素求和;

79、cvSVD:二维矩阵的奇异值分解;

80、cvSVBkSb:奇异值回代计算;

81、cvTrace:计算矩阵迹;

82、cvTranspose:矩阵的转置运算;

83、cvXor:对两个数组进行按位异或操作;

84、cvXorS:在数组和标量之间进行按位异或操作;

85、cvZero:将所有数组中的元素置为0;

86、cvConvertScaleAbs:计算可选的缩放值的绝对值之后再转换数组元素的类型;

87、cvNorm:计算数组的绝对范数,绝对差分范数或者相对差分范数;

88、cvAnd:对两个数组进行按位与操作;

89、cvAndS:在数组和标量之间进行按位与操作;

90、cvScale:是cvConvertScale的一个宏,可以用来重新调整数组的内容,并且可以将参数从一种数

据类型转换为另一种;

91、cvT:是函数cvTranspose的缩写;

92、cvLine:画直线;

93、cvRectangle:画矩形;

94、cvCircle:画圆;

95、cvEllipse:画椭圆;

96、cvEllipseBox:使用外接矩形描述椭圆;

97、cvFillPoly、cvFillConvexPoly、cvPolyLine:画多边形;

98、cvPutText:在图像上输出一些文本;

99、cvInitFont:采用一组参数配置一些用于屏幕输出的基本个特定字体;

100、cvSave:矩阵保存;

101、cvLoad:矩阵读取;

102、cvOpenFileStorage:为读/写打开存储文件;

103、cvReleaseFileStorage:释放存储的数据;

104、cvStartWriteStruct:开始写入新的数据结构;

105、cvEndWriteStruct:结束写入数据结构;

106、cvWriteInt:写入整数型;

107、cvWriteReal:写入浮点型;

108、cvWriteString:写入字符型;

109、cvWriteComment:写一个XML或YAML的注释字串;

110、cvWrite:写一个对象;

111、cvWriteRawData:写入多个数值;

112、cvWriteFileNode:将文件节点写入另一个文件存储器;

113、cvGetRootFileNode:获取存储器最顶层的节点;

114、cvGetFileNodeByName:在映图或存储器中找到相应节点;

115、cvGetHashedKey:为名称返回一个惟一的指针;

116、cvGetFileNode:在映图或文件存储器中找到节点;

117、cvGetFileNodeName:返回文件的节点名;

118、cvReadInt:读取一个无名称的整数型;

119、cvReadIntByName:读取一个有名称的整数型;

120、cvReadReal:读取一个无名称的浮点型;

121、cvReadRealByName:读取一个有名称的浮点型;

122、cvReadString:从文件节点中寻找字符串;

123、cvReadStringByName:找到一个有名称的文件节点并返回它;

124、cvRead:将对象解码并返回它的指针;

125、cvReadByName:找到对象并解码;

126、cvReadRawData:读取多个数值;

127、cvStartReadRawData:初始化文件节点序列的读取;

128、cvReadRawDataSlice:读取文件节点的内容;

129、cvGetModuleInfo:检查IPP库是否已经正常安装并且检验运行是否正常;130、cvResizeWindow:用来调整窗口的大小;

131、cvSaveImage:保存图像;

132、cvMoveWindow:将窗口移动到其左上角为x,y的位置;

133、cvDestroyAllWindow:用来关闭所有窗口并释放窗口相关的内存空间;

134、cvGetTrackbarPos:读取滑动条的值;

135、cvSetTrackbarPos:设置滑动条的值;

136、cvGrabFrame:用于快速将视频帧读入内存;

137、cvRetrieveFrame:对读入帧做所有必须的处理;

138、cvConvertImage:用于在常用的不同图像格式之间转换;

139、cvErode:形态腐蚀;

140、cvDilate:形态学膨胀;

141、cvMorphologyEx:更通用的形态学函数;

142、cvFloodFill:漫水填充算法,用来进一步控制哪些区域将被填充颜色;

143、cvResize:放大或缩小图像;

144、cvPyrUp:图像金字塔,将现有的图像在每个维度上都放大两倍;

145、cvPyrSegmentation:利用金字塔实现图像分割;

146、cvThreshold:图像阈值化;

147、cvAcc:可以将8位整数类型图像累加为浮点图像;

148、cvAdaptiveThreshold:图像自适应阈值;

149、cvFilter2D:图像卷积;

150、cvCopyMakeBorder:将特定的图像轻微变大,然后以各种方式自动填充图像边界;151、cvSobel:图像边缘检测,Sobel算子;

152、cvLaplace:拉普拉斯变换、图像边缘检测;

OpenCV主要函数介绍

4.1 OpenCV主要函数介绍 1) cvLoadImage 从文件中读取图像 IplImage* cvLoadImage(const char* filename,int flags=CV_LOAD_IMAGE_COLOR ); 函数cvLoadImage从指定文件读入图像,返回读入图像的指针。其中filename是要被读入的文件的文件名;flags指定读入图像的颜色和深度。 2)cvSaveImage 保存图像到文件 int cvSaveImage( const char* filename, const CvArr* image ); 函数cvSaveImage保存图像到指定文件。其中filename保存文件名。image 要保存的图像。图像格式的的选择依赖于filename的扩展名,只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。 3)cvQueryFrame从摄像头或者文件中抓取并返回一帧 IplImage* cvQueryFrame( CvCapture* capture ); 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。其中capture视频获取结构。。 4)cvCaptureFromCAM 初始化摄像头 CvCapture* cvCaptureFromCAM( int index ); 函数cvCaptureFromCAM给从摄像头的视频流分配和初始化CvCapture结构。 其中index要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。 5)cvHaarDetectObjects 用来检测图像中的人脸区域 CV API(CvSeq*) cvHaarDetectObjects( const CvArr* image, CvHaarClassifierCascade* cascade, CvMemStorage* storage, double scale_factor CV_DEFAULT(1.1), int min_neighbors CV_DEFAULT(3), int flags CV_DEFAULT(0), CvSize min_size CV_DEFAULT(cvSize(0,0)), CvSize max_size CV_DEFAULT(cvSize(0,0))); 用于快速检测人脸区域,便于提取得到人脸数据。其中image 为被检图像,cascade为 haar分类器级联的内部标识形式,storage 为用来存储检测到的一

OpenCV 2.4.4安装与配置

OpenCV 2.4.4 安装与配置 步骤一:安装OpenCV https://www.360docs.net/doc/3d16834314.html,/projects/opencvlibrary/files/opencv-win/2.4.4/ 1.从以上地址下载OpenCV 2.4.4,执行exe文件,将文件安装到所需目录。 2.建立环境变量并添加到系统路径(以将文件安装在D:\opencv为例): i) 右键点击桌面的计算机图标,选择“属性”,跳出如下窗口:

ii) 点击“高级系统设置”,跳出如下窗口:

iii) 点击“高级”选项卡下的“环境变量”,跳出如下窗口:

iv) 点击“系统变量”下的“新建”,“变量名”输入OPENCV_BUILD,“变量值”输入D:\opencv\build(如果OpenCV解压在别的目录,请输入该目录路径。比如,如果在C盘ProgramFiles文件夹建立了名为OpenCV的文件夹,并在其中解压,那么输入的目录就为 C:\ProgramFiles\OpenCV\opencv\build,总之目录一直到build文件夹),点击“确定”。 v) 双击“用户变量”中的PATH,在跳出的窗口中输入变量值为%OPENCV_BUILD%\x86\vc10\bin (如果电脑是64位系统的,请把“x86”改为“x64”;并请确保使用的是VS 2010,因为vc10 文件夹针对的是VS 2010)。

步骤二:在VS2010中配置OpenCV 1. 打开VS 2010,新建一个项目(Win32控制台或MFC 都可以)。 2. 建立Debug 属性表。 i) 点击“视图”菜单中的“属性管理器”。

opencv函数目录-Cv图像处理

目录 1 梯度、边缘和角点 1.1 Sobel 1.2 Laplace 1.3 Canny 1.4 PreCornerDetect 1.5 CornerEigenValsAndVecs 1.6 CornerMinEigenVal 1.7 CornerHarris 1.8 FindCornerSubPix 1.9 GoodFeaturesToTrack 2 采样、插值和几何变换 2.1 InitLineIterator 2.2 SampleLine 2.3 GetRectSubPix 2.4 GetQuadrangleSubPix 2.5 Resize 2.6 WarpAffine 2.7 GetAffineTransform 2.8 2DRotationMatrix 2.9 WarpPerspective 2.10 WarpPerspectiveQMatrix 2.11 GetPerspectiveTransform 2.12 Remap 2.13 LogPolar 3 形态学操作 3.1 CreateStructuringElementEx 3.2 ReleaseStructuringElement 3.3 Erode 3.4 Dilate 3.5 MorphologyEx 4 滤波器与色彩空间变换 4.1 Smooth 4.2 Filter2D 4.3 CopyMakeBorder 4.4 Integral 4.5 CvtColor 4.6 Threshold 4.7 AdaptiveThreshold 5 金字塔及其应用 5.1 PyrDown 5.2 PyrUp 6 连接部件 6.1 CvConnectedComp

OPENCV 2.4.10安装

一、VS2020安装opencv2.4.10 1.1首先安装vs2010 安装这个就不用多谈了 1.2下载opencv- 2.4.10.exe,并解压到 最后会在 1.3添加系统变量 在系统变量path后添加:C:\opencv\opencv\build\x86\vc10\bin 1.4新建vc++控制台工程项目,配置 1.4.1项目属性->配置属性->VC++目录->包含目录 添加 C:\opencv\opencv\build\include C:\opencv\opencv\build\include\opencv C:\opencv\opencv\build\include\opencv2

1.4.2项目属性->配置属性->VC++目录->引用目录 添加 C:\opencv\opencv\build\x86\vc10\lib 1.4.3项目属性->链接器->输入->附加依赖项 在debug模式下添加 配置方案为Debug的配置,添加:(2410代表我的opencv版本是2.4.10,需要对应更改) opencv_calib3d2410d.lib opencv_contrib2410d.lib opencv_core2410d.lib opencv_features2d2410d.lib

opencv_flann2410d.lib opencv_gpu2410d.lib opencv_highgui2410d.lib opencv_imgproc2410d.lib opencv_legacy2410d.lib opencv_ml2410d.lib opencv_nonfree2410d.lib opencv_objdetect2410d.lib opencv_ocl2410d.lib opencv_photo2410d.lib opencv_stitching2410d.lib opencv_superres2410d.lib opencv_ts2410d.lib opencv_video2410d.lib opencv_videostab2410d.lib 配置方案为Release的配置,添加: opencv_calib3d2410.lib opencv_contrib2410.lib opencv_core2410.lib opencv_features2d2410.lib opencv_flann2410.lib opencv_gpu2410.lib opencv_highgui2410.lib opencv_imgproc2410.lib opencv_legacy2410.lib opencv_ml2410.lib opencv_nonfree2410.lib opencv_objdetect2410.lib opencv_ocl2410.lib opencv_photo2410.lib opencv_stitching2410.lib opencv_superres2410.lib opencv_ts2410.lib opencv_video2410.lib opencv_videostab2410.lib

OPENCV库函数使用说明

OPENCV(Intel Open Source Computer Vision Library)是一种数字图像处理和计算机视觉的函数库,由Intel公司微处理器实验室(Intel’s Microprocessor Research Lab)的视觉交互组(The Visual Interactivity Group)开发。它可以在Windows系统、Linux系统、MacOSx系统等操作平台上使用,也可以和其他编程工具结合,以满足不同的使用要求。使用OPENCV使用C/C++编写,包含300多个图像处理函数,有以下几个对立的子库组成: 1.CXCORE:一些基本函数(各种数据类型的基本运算等) 2.CV:图像处理和计算机视觉算法(图像处理、结构分析、运动分析、物体跟 踪和模式识别等) 3.HIGHGUI:用户交互部分(图形界面,图像视频输入输出,系统调用函数) 4.CVAUX:一些实验性的函数(三维跟踪等) 在这些库函数的支持下,用户可以直接调用滤波函数,形态学处理,图像特征提取,轮廓提取算法和跟踪算法,也可以添加自己编写的子函数,不但能完成复杂的开发任务,还可以提高效率,达到事半功倍的效果。 OPENCV的重要特性: 1.拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其他的外部库——尽管也可以使用某些外部库。 2.对非商业应用和商业应用都是免费(FREE)的。 3.为Integrated Performance Primitives(IPP)提供了透明的接口。这意味着如果有为特定处理器优化的IPP库,OPENCV将在运行时自动加载这些库。 在VC++环境中OPENCV的使用设置: Microsoft公司开发的Visual C++是一种具有高度综合性能的软件开发工具。用它开发出的程序具有运行速度快,可移植能力强等优点,在对数字图像处理进行处理时经常采用Visual C++进行编程,通过对VC进行配置,就可以在编程过程中直接使用OPENCV的函数编写代码,减少了工作量,提高了运行效率。 在OPENCV安装完成后,首先需要把它的路径加入到系统环境变量中,然后再VC菜单Tools→Options→Directories下设置Library files路径,再选择Source files,最后选择Include files,就可以加入路径,如错误!未找到引用源。所示。设置完成后,就可以新建或打开一个使用OPENCV的工程。 打开工程后,选择菜单Project→Settings,然后将Setting for选为All Configurations,再选择右边的link标签,在Object/library modules加上工程属性中使用的库,这样就可以顺利编程。

vs2010下配置OpenCV

以下配置方法仅属于个人见解;若有什么不对的地方请指教啊。 在完成每一步骤后,记住点击?确定?,以确保你的设置成功。 在某些步骤中注意要在Debug 和Release 分别进行配置。 1.首先是下载VS2010并安装,这里不作赘述;(安装目录: D:\\Program Files\Microsoft Visual Studio 10.0) 2.下载并安装OpenCV,我的版本是2.1(安装目录为D:\Program Files\OpenCV2.1)注意将路径添加至Path中 3.下载并安装CMake,下载版本为Windows(Win32 Installer),安装目录为D:\Program Files\CMake 2.8 4.运行cmake-gui(D:\Program Files\CMake 2.8\bin),设置路径为OpenCV安装路径(本文档假定安装位置为:D:\Program Files\OpenCV2.1),并创建子目录D:\Program Files\OpenCV2.1\vs2010,用于存放编译结果。将数据填入指定文本框中

5.点击?Configure?,在弹出对话框中选中Visual Studio 10.0;单选框中选项选择程序默认的;然后点击Fnish;程序会自动完成 ?Configure Done?; 6.然后点击?configure?,接着点击?Generate?。程序完成?Generate Done?。 7.完成以上步骤后,将在D:\Program Files\OpenCV2.1|vs2010目录下生成OpenCV.sln的VC Solution File,接着请用vs2010打开OpenCV.sln,完成以下操作:

OPENCV函数

Opencv函数 分配图像空间: IplImage*cvCreateImage(CvSize size,int depth,int channels); size:cvSize(width,height); depth:IPL_DEPTH_8U,IPL_DEPTH_8S,IPL_DEPTH_16U, IPL_DEPTH_16S,IPL_DEPTH_32S,IPL_DEPTH_32F, IPL_DEPTH_64F channels:1,2,3or4. 注意数据为交叉存取.彩色图像的数据编排为b0g0r0b1g1 r1... 举例: //分配一个单通道字节图像 IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); //分配一个三通道浮点图像 IplImage*img2=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3); 释放图像空间: IplImage*img=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); cvReleaseImage(&img); 复制图像: IplImage*img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1); IplImage*img2; img2=cvCloneImage(img1); 设定/获取兴趣区域: void cvSetImageROI(IplImage*image,CvRect rect); void cvResetImageROI(IplImage*image); vRect cvGetImageROI(const IplImage*image); 大部分OpenCV函数都支持ROI. 设定/获取兴趣通道: void cvSetImageCOI(IplImage*image,int coi);//0=all int cvGetImageCOI(const IplImage*image); 大部分OpenCV函数暂不支持COI.

Open CV的安装及使用说明

Open CV的安装及使用说明 ******************************************************************************* 如果不需要安装OpenCV中的(CalibFilter、ProxyTrans、SyncFilter), 则步骤为以下方式 (1)安装Open CV(这里的OpenCV版本为OpenCV_1.0); (2)点击”我的电脑”右键属性的系统环境变量,在path中添加\bin路径,例如: D:\OpenCV\bin; (3)打开\_make\opencv.dsw,选择菜单Build->Batch Build->Build; ******************************************************************************* 如果需要安装OpenCV中的(CalibFilter、ProxyTrans、SyncFilter),则 步骤为以下方式 (1)安装SDK(注意:2004年下半年及2005以后的版本都不包括directshow), 安装目录为:D:\ DXSDK; (2)安装Open CV(这里的OpenCV版本为OpenCV_1.0); (3)点击”我的电脑”右键属性的系统环境变量,在path中添加\bin路径,例如: D:\OpenCV\bin; (4)编译D:\DXSDK\Samples\C++\DirectShow\BaseClasses,编译建立Release和Debug版本, 将产生的库strmbase.lib和strmbasd.lib拷贝到目录\lib下,在Developer Studio的Tools->Options->Directories->Include files中添加如下路径:\include \samples\C++\DirectShow\BaseClasses 另外在Tools->Options->Directories->Library files中添加如下路径: \lib; (5)打开\_make\opencv.dsw,选择菜单Build->Batch Build->Build,又打开 \_make\opencv_directshow.dsw,选择菜单Build->Batch Build->Build; ******************************************************************************* 注意:在编译opencv.dsw有错误 错误的地方是"foreground_regions"问题。打开"Edit"->"Find In Files"->"In folder"选择"D:\OpenCV",找foreground_regions。在"Find in Files"底下我们点击"CvSeq* foreground_regions /*foreground object contours*/",找到 CvMemStorage* storage; /*storage for 揻oreground_regions?/ CvSeq* foreground_regions /*foreground object contours*/ 问题就出在 CvMemStorage* storage; /*storage for 揻oreground_regions?/, 改为 "CvMemStorage* storage; /*storage for 揻oreground_regions*/" 即可。 *******************************************************************************

OPenCV3.2中Mat对象常用函数属性总结

OPenCV3.2中Mat对象常用函数属性总结Mat对象是OpenCV2.0之后引进的图像数据结构,它能自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分。 在使用Mat对象时,有以下四个要点需要注意: 1、输出图像的内存是自动分配的 2、使用OpenCV的C++接口,不需要考虑内存分配问题 3、赋值操作和拷贝构造函数只会复制头部分 4、使用clone与copyTo两个函数实现数据完全复制 下面我们就具体介绍一下公共成员函数和公共属性。 公共成员函数: 1、cv::Mat::Mat ( int rows, int cols, int type ) 参数: rows2D数组中的行数 cols2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。

2、cv::Mat::Mat ( Size size, int type ) 参数: size 2D数组大小:Size(cols, rows)。在Size()构造函数中,行数和列数以相反的顺序排列。 type 数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。 3、cv::Mat::Mat ( int rows, int cols, int type, const Scalar & s ) 参数: rows2D数组中的行数。 cols 2D数组中的列数。 type数组类型。使用CV_8UC1,…,CV_64FC4创建1 - 4通道矩阵,或CV_8UC(n),…,CV_64FC(n)创建多通道(向上到CV_CN_MAX通道)矩阵。s 初始化每个矩阵元素的可选值。在构建后将所有矩阵元素设置为特定值, 使用赋值运算符Mat::operator=(const Scalar& value) 。 4、cv::Mat::Mat ( Size size, int type,

ubuntu12.04安装OpenCV2.4.1

ubuntu12.04安装OpenCV2.4。1 分类:opencv2012-06-26 14:411230人阅读评论(0)收藏举报 目录(?)[+] The Installation Procedure To install and configure OpenCV 2.4.1, complete the following steps. The commands shown in each step can be copy and pasted directly into a Linux command line. 1. R emove any installed versions of ffmpeg and x264. sudo apt-get remove ffmpeg x264 libx264-dev 2. G et all the dependencies for x264 and ffmpeg. sudo apt-get update sudo apt-get install build-essential checkinstall git cmake libfaac-dev libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev texi2html yasm zlib1g-dev 3. D ownload and install gstreamer. sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg 4. D ownload and install gtk. sudo apt-get install libgtk2.0-0 libgtk2.0-dev 5. D ownload and install libjpeg. sudo apt-get install libjpeg8 libjpeg8-dev 6. C reate a directory to hold source code.

快速学习OPENCV常用函数

访问图像元素如下: 1、针对各种图像(包括4-通道)和矩阵的函数(cvGet2D,cvSet2D),但是它们都很慢. (img->origin=IPL_ORIGIN_TL)或者是左下角(img->origin=IPL_ORIGIN_BL) 假设有8-bit1-通道的图像I(IplImage*img): I(x,y)~((uchar*)(img->imageData+img->widthStep*y))[x] 假设有8-bit3-通道的图像I(IplImage*img): I(x,y)blue~((uchar*)(img->imageData+img->widthStep*y))[x*3] I(x,y)green~((uchar*)(img->imageData+img->widthStep*y))[x*3+1] I(x,y)red~((uchar*)(img->imageData+img->widthStep*y))[x*3+2] 如果增加点(100,100)的亮度30,那么可以: CvPoint pt={100,100}; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+1]+=30; ((uchar*)(img->imageData+img->widthStep*pt.y))[pt.x*3+2]+=30; CvPoint pt={100,100}; uchar*temp_ptr=&((uchar*)(img->imageData+ img->widthStep*pt.y))[x*3]; temp_ptr[0]+=30; temp_ptr[1]+=30; temp_ptr[2]+=30; 假设有32-bit浮点数,1-通道图像I(IplImage*img): I(x,y)~((float*)(img->imageData+img->widthStep*y))[x] 现在,通用方法:假设有N-通道,类型为T的图像: I(x,y)c~((T*)(img->imageData+img->widthStep*y))[x*N+c] 或者你可使用宏CV_IMAGE_ELEM(image_header,elemtype,y,x_Nc) I(x,y)c~CV_IMAGE_ELEM(img,T,y,x*N+c) 2、访问矩阵元素 设有32-bit浮点数的实数矩阵M(CvMat*mat): M(i,j)~((float*)(mat->data.ptr+mat->step*i))[j] 设有64-bit浮点数的复数矩阵M(CvMat*mat): Re M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2] Im M(i,j)~((double*)(mat->data.ptr+mat->step*i))[j*2+1]

OpenCV最基础的图像处理的例子

?什么是OpenCV ?开源C/C++计算机视觉库. ?面向实时应用进行优化. ?跨操作系统/硬件/窗口管理器. ?通用图像/视频载入、存储和获取. ?由中、高层API构成. ?为Intel?公司的Integrated Performance Primitives (IPP) 提供了透明接口. ?特性: ?图像数据操作(分配,释放, 复制, 设定, 转换). ?图像与视频I/O (基于文件/摄像头输入, 图像/视频文件输出). ?矩阵与向量操作与线性代数计算(相乘, 求解, 特征值, 奇异值分解SVD). ?各种动态数据结构(列表, 队列, 集, 树, 图). ?基本图像处理(滤波, 边缘检测, 角点检测, 采样与插值, 色彩转换, 形态操作, 直方图, 图像金字塔). ?结构分析(连接成分, 轮廓处理, 距离转换, 模板匹配, Hough转换, 多边形近似, 线性拟合, 椭圆拟合, Delaunay三角化). ?摄像头标定 (寻找并跟踪标定模板, 标定, 基础矩阵估计, homography估计, 立体匹配). ?动作分析(光流, 动作分割, 跟踪). ?对象辨识 (特征方法, 隐马可夫链模型HMM). ?基本GUI(显示图像/视频, 键盘鼠标操作, 滚动条). ?图像标识 (直线, 圆锥, 多边形, 文本绘图) ?OpenCV 模块: ?cv - OpenCV 主要函数. ?cvaux - 辅助(实验性) OpenCV 函数. ?cxcore - 数据结构与线性代数算法. ?highgui - GUI函数. 资料链接 ?参考手册: ?/docs/index.htm ?网络资源: ?官方网页: https://www.360docs.net/doc/3d16834314.html,/technology/computing/opencv/?软件下载: https://www.360docs.net/doc/3d16834314.html,/projects/opencvlibrary/ ?书籍: ?Open Source Computer Vision Library by Gary R. Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006). ?视频处理例程(位于/samples/c/目录中): ?色彩跟踪: camshiftdemo ?点跟踪: lkdemo

OPENCV下载与安装

OpenCV下载与安装 可以在https://www.360docs.net/doc/3d16834314.html,/downloads.html上下载各种版本的OpenCV的源码,Windows、Linux/Mac、iOS、Android都有相应的版本,所以OpenCV可以满足在各种操作系统下的开发,一般来说现有的无人驾驶智能车视觉信息认知计算研究团队都是在Windows和Linux平台下开发。目前OpenCV最新发布的是OpenCV3.0BETA版本(这是一个公测版本),本书所有的视觉算法是基于OpenCV2.4.3版本实现的。 OpenCV下载后安装极其简单,下面是一个以OpenCV2.4.3版本为例的具体安装过程。 OpenCV下载后是一个可执行文件(.exe文件),如OpenCV-2.4.3.exe,安装的时候只需要直接运行这个可执行文件,运行后或得到图1-4的安装路径的选择界面,安装过程实质就是一个解压过程。 图1-4OpenCV安装的路径选择 如1-4所示是将OpenCV解压在计算机的C盘,安装(解压)完成后,可以在C盘中找到一个名称为opencv的文件夹,若能找到,

说明OpenCV安装完毕。不建议将OpenCV安装在C盘中(C盘一般是系统盘),因为OpenCV解压后的文件比较大。 1.2.3环境配置 OpenCV安装完之后还需要进行环境配置才能使用,本书是以Windows7+Microsoft Visual Studio2010下OpenCV2.4.3的环境配置为案例介绍。 (1)设置OpenCV环境变量 OpenCV库函数需要通过用户环境变量调用所需要的库文件。点击:开始->计算机(右击)->属性->高级系统设置->高级->环境变量,在用户变量里新建一项: 变量名:path 变量值:C:\opencv\build\x86\vc10\bin 图1-5设置环境变量

opencv最基础的图像处理

openCV——几个实用函数 2010年12月20日星期一 09:18 1. cvSmooth:各种方法的图像平滑 void cvSmooth( const CvArr* src, CvArr* dst, int smoothtype=CV_GAUSSIAN, int param1=3, int param2=0, double param3=0 ); src 输入图像. dst 输出图像. smoothtype 平滑方法: . CV_BLUR_NO_SCALE (简单不带尺度变换的模糊) - 对每个象素的param1×param2 领域求和。如果邻域大小是变化的,可以事先利用函数cvIntegral 计算积分图像。 . CV_BLUR (simple blur) - 对每个象素param1×param2邻域求和并做尺度变换 1/(param1.param2). . CV_GAUSSIAN (gaussian blur) - 对图像进行核大小为 param1×param2 的高斯卷积 . CV_MEDIAN (median blur) - 对图像进行核大小为 param1×param1 的中值滤波 (i.e. 邻域是方的). . CV_BILATERAL (双向滤波) - 应用双向 3x3 滤波,彩色 sigma=param1,空间 sigma=param2. 平滑操作的第一个参数. param2 平滑操作的第二个参数. 对于简单/非尺度变换的高斯模糊的情况,如果 param2的值为零,则表示其被设定为param1。 param3

对应高斯参数的 Gaussian sigma (标准差). 如果为零,则标准差由下面的核尺寸计算: sigma = (n/2 - 1)*0.3 + 0.8, 其中 n=param1 对应水平核, n=param2 对应垂直核. 对小的卷积核 (3×3 to 7×7) 使用如上公式所示的标准 sigma 速度会快。如果 param3 不为零,而 param1 和 param2 为零,则核大小有sigma 计算 (以保证足够精确的操作). 函数 cvSmooth 可使用上面任何一种方法平滑图像。每一种方法都有自己的特点以及局限。 没有缩放的图像平滑仅支持单通道图像,并且支持8位到16位的转换(与cvSobel和cvaplace相似)和32位浮点数到32位浮点数的变换格式。 简单模糊和高斯模糊支持 1- 或 3-通道, 8-比特和 32-比特浮点图像。这两种方法可以(in-place)方式处理图像。 中值和双向滤波工作于 1- 或 3-通道, 8-位图像,但是不能以 in-place 方式处理图像. 2.IplImage结构 由于OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage结构。IplImage结构来源于Intel的另外一个函数库Intel Image Processing Library (IPL),该函数库主要是针对图像处理。IplImage结构具体定义如下: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/

Opencv中函数的用法

1、cvLoadImage:将图像文件加载至内存; 2、cvNamedWindow:在屏幕上创建一个窗口; 3、cvShowImage:在一个已创建好的窗口中显示图像; 4、cvWaitKey:使程序暂停,等待用户触发一个按键操作; 5、cvReleaseImage:释放图像文件所分配的内存; 6、cvDestroyWindow:销毁显示图像文件的窗口; 7、cvCreateFileCapture:通过参数设置确定要读入的AVI文件; 8、cvQueryFrame:用来将下一帧视频文件载入内存; 9、cvReleaseCapture:释放CvCapture结构开辟的内存空间; 10、cvCreateTrackbar:创建一个滚动条; 11、cvSetCaptureProperty:设置CvCapture对象的各种属性; 12、cvGetCaptureProperty:查询CvCapture对象的各种属性; 13、cvGetSize:当前图像结构的大小; 14、cvSmooth:对图像进行平滑处理; 15、cvPyrDown:图像金字塔,降采样,图像缩小为原来四分之一; 16、cvCanny:Canny边缘检测; 17、cvCreateCameraCapture:从摄像设备中读入数据; 18、cvCreateVideoWriter:创建一个写入设备以便逐帧将视频流写入视频文件;搜索 19、cvWriteFrame:逐帧将视频流写入文件; 20、cvReleaseVideoWriter:释放CvVideoWriter结构开辟的内存空间; 21、CV_MAT_ELEM:从矩阵中得到一个元素; 22、cvAbs:计算数组中所有元素的绝对值;

opencv编译与安装

2012/3/6, 16:55:01 在fedora15的环境下编译与安装opencv,并测试人脸检测程序 第一步:由于opencv是在cmake工具下建立的工程,所以我们先要下载cmake,下载地址随便一搜都有,不多说。下载到home的主目录下,这里我们是/home/lg。看下面的命令: #cd /home/lg #tar xzvf CMake2.4.7.tar.gz . #cd CMake2.4.7 #./boostrap #gmake #make install 这样cmake工具安装好了,并且可以直接使用cmake命令 根据cmake的编译规律,我们选择外部编译。 下载Opencv2.3.0到/home/lg 解压后进入Opencv2.3.0的目录下(这里的opencv与以前版本1.0的不一样,没有configure文件,所以我们执行不了./configure命令): #mkdir build #cd build #cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..(这条命令解析可以参考cmake教程,但是记住这里的第二个选项,我们将opencv安装在/usr/local目录下的) #make #make install 到这opencv编译完成,接下去是是opencv这个工具能正常使用。 记住这里的做法前一种对fedora有用,也就是说在fedora的环境下只能使用这种做法,但是ubuntu却可以使用两种方法。顺便说一下,经常遇见apt-get命令,这是在ubuntu下使用获取软件包的命令,fedora使用的是yum,记住了,否则经常出现使用apt-get却获取不了软件包的情况。 方法1:在/etc/ld.so.conf.d下新建一个文件opencv.conf,里面输入/usr/local/lib 方法2:在/etc/ld.so.conf文件中加入/usr/local/lib这一行 然后执行 #ldconfig(root权限下) #cp /usr/local/lib/pkconfig/opencv.pc /usr/lib/pkgconfig (或者是输入这个命令 export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH)(pkconfig的用法见以前的博文) 至此opencv安装完成 我们可以找个例子来做实验 #cd /home/lg/Opencv2.3.0 #cd samples/cpp #g++ `pkconfig --cflags --libs opencv` drawing.cpp -o drawing(记住前面的两个引号是通过ESC下面的那个波浪符键获得 页次: 1

opencv2.4.9配置

Visual Studio 2010配置 Opencv2.4.9 转自: https://www.360docs.net/doc/3d16834314.html,/huang9012/article/details/21811129 这篇文章作为OpenCV的启程篇,自然少不了先系统地介绍OpenCV开发环境的配置。 浅墨前后经历过OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本的配置,有时候还要涉及到三个版本之间的转换,所以还是对OpenCV的配置有一定的理解的,希望自己的一点拙见能帮到大家。 还是先放出待会儿的测试用图:

1.下载和安装OpenCV SDK VS2010不用说,肯定都安装了吧。来说说当前最新的OpenCV版本2.4.8(2014年2月24日)的下载和安装。与其说是安装,不如叫解压更加合适,因为我们下载的exe安装文件就是一个自解压程序而已。

在官网:https://www.360docs.net/doc/3d16834314.html,/上找到OpenCV windows版下载下来。 下载完后得到文件OpenCV 2.4.8,双击后会提示解压到某个地方,推荐放到D:\Program Files\下,比如D:\Program Files,(因为OpenCV项目文件打包的时候,根目录就是opencv,所以我们不需要额外的新建一个名为opencv的文件夹,然后再解压,那是多此一举的事情)然后点击Extract按钮 等一段时间,OpenCV2.4.8近3个多G的文件就解压到了D:\Program Files下。

其中,build里面是使用OpenCV相关的文件,我们如果只是使用OpenCV的话呢,就只用管build里面的内容。下面的sources文件夹你嫌烦,你嫌占硬盘空间,完全可以删掉。但是需要注意的是,官方示例集,也就是samples文件夹里面的示例程序,在sources文件夹里面躺着呢,所以,如果真是要删的话,还是想清楚哦。sources里面是源代码。想查看完整的源代码需要用cmake来“解包”,如何“解包”大家百度一下就可以,或者下次浅墨来专门讲一讲。这里就先不多说了。 2.配置环境变量 有些奇怪的是,浅墨在经历OpenCV 2.4.6,OpenCV 2.4.7,OpenCV 2.4.8这三个版本之间转换的时候,这三个版本的OpenCV存放在硬盘的不同的目录下。但就没动过这步里面的环境变量,或许新版本的OpenCV已经弱化了环境变量的配置。所以,大家可以先跳过这步,如果最终配置出来报错的话呢,可以考虑下根据实际情况加上这步的配置。 这步的配置方法如下: 计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)->在变量值里面添加相应的路径。 对于32位系统,就添加: ”……opencv\build\x86\vc10\bin”

相关文档
最新文档