分享
分销 收藏 举报 申诉 / 31
播放页_导航下方通栏广告

类型opencv函数总结.doc

  • 上传人:仙人****88
  • 文档编号:11258085
  • 上传时间:2025-07-11
  • 格式:DOC
  • 页数:31
  • 大小:1.45MB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    opencv 函数 总结
    资源描述:
    一、常用函数 1、 cvLoadImage 2、 cvSaveImage 3、 cvCreateImage 4、 cvGetSize 5、 cvCvtColor 6、 cvQueryFrame 7、 CvScalar 8、 cvGet2D 9、 cvSet2D 10、 Cvcopy拷贝 11、 cvThreshold阈值化 12、 cvAdaptiveThreshold自适应阈值化 13、 cvFindContours检索轮廓 14、 cvDrawContours绘制轮廓 15、 cvCreateMemStorage 16、 CvSeq 17、 cvCanny 18、 cvErode腐蚀 19、 cvDilate膨胀 20、 cvHoughCircles 21、 垂直投影和水平投影的例子 22、 cvLine和CvPoint、cvRectangle 23、 cvSetImageROI 24、 cvResetImageROI 1、cvLoadImage 函数原型: IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR ); 详细介绍 filename :要被读入的文件的文件名(包括后缀); flags :指定读入图像的颜色和深度: 指定的颜色可以将输入的图片转为3通道(CV_LOAD_IMAGE_COLOR), 单通道 (CV_LOAD_IMAGE_GRAYSCALE), 或者保持不变(CV_LOAD_IMAGE_ANYCOLOR)。 深度指定输入的图像是否转为每个颜色通道每象素8位,,或者同输入的图像一样保持不变。 选中CV_LOAD_IMAGE_ANYDEPTH,则输入图像格式可以为8位无符号,16位无符号,32位有符号或者32位浮点型。 如果输入有冲突的标志,将采用较小的数字值。比如CV_LOAD_IMAGE_COLOR | CV_LOAD_IMAGE_ANYCOLOR 将载入3通道图。CV_LOAD_IMAGE_ANYCOLOR和CV_LOAD_IMAGE_UNCHANGED是等值的。但是,CV_LOAD_IMAGE_ANYCOLOR有着可以和CV_LOAD_IMAGE_ANYDEPTH同时使用的优点,所以CV_LOAD_IMAGE_UNCHANGED不再使用了。 如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR。 函数cvLoadImage从指定文件读入图像,返回读入图像的指针。 目前支持如下文件格式: Windows位图文件- BMP, DIB; JPEG文件 - JPEG, JPG, JPE; 便携式网络图片- PNG; 便携式图像格式- PBM,PGM,PPM; Sun rasters - SR,RAS; TIFF文件 - TIFF,TIF; OpenEXR HDR 图片 - EXR; JPEG 2000 图片- jp2。 cvSaveImage 保存图像到文件 int cvSaveImage( const char* filename, const CvArr* image ); Filename:文件名。 Image:要保存的图像。 函数cvSaveImage保存图像到指定文件。图像格式的的选择依赖于filename的扩展名,请参考cvLoadImage。只有8位单通道或者3通道(通道顺序为'BGR' )可以使用这个函数保存。如果格式,深度或者通道不符合要求,请先用cvCvtScale 和cvCvtColor转换;或者使用通用的cvSave保存图像为XML或者YAML格式。 cvLoadImage函数使用方法: cvLoadImage( filename, -1 ); 默认读取图像的原通道数 cvLoadImage( filename, 0 ); 强制转化读取图像为灰度图 cvLoadImage( filename, 1 ); 读取彩色图 例:将读入图像强制转换为灰度图像显示 #include <highgui.h> #include <cv.h> int main(int argc, char **argv) { if (argc != 2)//改为(argc != 1) return -1; /*强制转换为灰度图像*/ IplImage *img = cvLoadImage(argv[1], 0); cvNamedWindow("example"); cvShowImage("example", img); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("example"); return 0; } 2、cvCreateImage cvCreateImage: 创建首地址并分配存储空间 IplImage* cvCreateImage( CvSize size, int depth, int channels ); 参数说明: size 图像宽、高. depth 图像元素的位深度,可以是下面的其中之一: { IPL_DEPTH_8U - 无符号8位整型 IPL_DEPTH_8S - 有符号8位整型 IPL_DEPTH_16U - 无符号16位整型 IPL_DEPTH_16S - 有符号16位整型 IPL_DEPTH_32S - 有符号32位整型 IPL_DEPTH_32F - 单精度浮点数 IPL_DEPTH_64F - 双精度浮点数 } cvGetSize OpenCV提供的一种操作矩阵图像的函数。得到二维的数组的尺寸,以CvSize返回。 CvSize cvGetSize( const CvArr* arr ); 它与cvGetDims()密切相关,cvGetDims()返回一个数组的大小。主要的不同是cvGetSize()是专为矩阵和图像设计的,这两种对象的维数总是2。其尺寸可以以CvSize结构的形式返回,例如当创建一个新的大小相同的矩阵或图像时,使用此函数就很方便。 OpenCV提供了多种基本数据类型。其中有一种是CvSize类型,它的数据成员是integer类型的width和height。如果希望使用浮点类型,则选用CvSize的变体类型CvSize2D32f。 cvCvtColor cvCvtColor(...)是Opencv里的颜色空间转换函数,可以实现RGB颜色向HSV,HSI等颜色空间的转换,也可以转换为灰度图像。 参数: CV_RGB2GRAY是RGB到gray, CV_GRAY2RGB是gray到RGB.处理结果是彩色的,则转灰色就是了: void cvCvtColor( const CvArr* src, CvArr* dst, int code ); src 输入的 8-bit,16-bit或 32-bit单倍精度浮点数影像。 dst 输出的8-bit, 16-bit或 32-bit单倍精度浮点数影像。 code 色彩空间转换的模式,该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将RGB值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。 函数使用范例 这里给出将RGB图像转换为灰度和HSV的例子: IplImage *src = cvLoadImage("4085_1.jpg",1);//原图 IplImage *dst_gray = cvCreateImage(cvGetSize(src),src->depth,1);//灰度图 IplImage *dst_image = cvCreateImage(cvGetSize(src),32,src->nChannels); IplImage *src_image_32 = cvCreateImage(cvGetSize(src),32,src->nChannels); //这两个图需要是32浮点位的,因为对原图进行归一化后得到的是浮点数 cvCvtColor(src,dst_gray,CV_BGR2GRAY);//得到灰度图 cvConvertScale(src,src_image_32,1.0/255.0,0);//将原图RGB归一化到0-1之间 cvCvtColor(src_image_32,dst_image,CV_BGR2HSV);//得到HSV图 3、 cvQueryFrame OpenCV中一个函数cvQueryFrame 从摄像头或者文件中抓取并返回一帧 IplImage* cvQueryFrame( CvCapture* capture ); Capture:视频获取结构。 函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。 这个函数仅仅是函数cvGrabFrame和 函数cvRetrieveFrame在一起调用的组合。 返回的图像不可以被用户释放或者修改。 cvQueryFrame的参数为CvCapture结构的指针。用来将下一帧视频文件载入内存,返回一个对应当前帧的指针。与cvLoadImage不同的是cvLoadImage为图像分配内存空间,而cvQueryFrame使用已经在cvCapture结构中分配好的内存。这样的话,就没有必要通过cvReleaseImage()对这个返回的图像指针进行释放,当CvCapture结构被释放后,每一帧图像所对应的内存空间即会被释放。 4、 CvScalar 这个 CvScalar就是一个可以用来存放4个double数值的数组(O'Reilly的书上写的是4个整型成员);一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。 typedef struct CvScalar   double val[4];   }CvScalar; 如何赋值 1. inline CvScalar cvScalar( double val0, double val1=0,double val2=0, double val3=0 ); //最通用的,可初始化0-4个通道 举例: a) 存放单通道图像中像素:cvScalar(255); b) 存放三通道图像中像素:cvScalar(255,255,255); 2. inline CvScalar cvRealScalar( double val0 ); //只使用第一个通道,val[0]=val0;等同于cvScalar(val0,0,0,0); 3. inline CvScalar cvScalarAll( double val0123 ); //所用通道值用同一个val0123赋值 4. CV_RGB CV_RGB是OPENCV中的一个宏,用于创建一个色彩值: #define CV_RGB(r,g,b) cvScalar((b),(g),(r),0)。 看到转换为cvScalar时,rgb的顺序变为bgr,这是因为opencv中存储RGB模式彩图时,采用的通道顺序是BGR. 举例 CvScalar color = CV_RGB( rand()&255, rand()&255, rand()&255 ) 返回特殊的数组元素 cvGet2D函数 CvScalar cvGet2D( const CvArr* arr, int idx0, int idx1 ); arr 输入数组. idx0 元素下标第一个以0为基准的成员 idx1 元素下标第二个以0为基准的成员 idx2 元素下标第三个以0为基准的成员 idx 元素下标数组 函数cvGet*D 返回指定的数组元素。对于稀疏数组如果需要的节点不存在函数返回0 (不会创建新的节点) 例 { CvScalar s; s = cvGet2D(src, j,i); }//获取src图像中坐标为(i,j)的像素点的值 s.val[0] 代表src图像BGR中的B通道的值~ cvSet2D函数 cvGet2D(),cvSet2D()为opencv库中的函数。 Void cvSet2D (const CvArr * arr, int idx0, int idx1, CvScalar value);//常用于像素赋值 cvGet2D() 的函数原型是 : CvScalar cvGet2D (const CvArr * arr, int idx0, int idx1); 函数返回的是一个CvScalar 容器,其参数中也有两个方向的坐标,但跟我们平常习惯的坐标不一样的是,idx0代表是的行,即高度,对应于我们平常坐标系的y, idx1代表的是列,即宽度,对应于我们平常坐标系的x,cvSet2D() 也类似。 Cvcopy函数 cvcopy是一个函数,拷贝一个数组给另一个数组 cvcopy : 拷贝一个数组给另一个数组 void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL ); src 输入数组。 dst 输出数组。 mask 操作掩码是8比特单通道的数组,它指定了输出数组中被改变的元素。 函数cvCopy从输入数组中复制选定的成分到输出数组: 如果mask(I)!=0,则dst(I)=src(I)。 如果输入输出数组中的一个是IplImage类型的话,其ROI和COI将被使用。输入输出数组必须是同样的类型、维数和大小。函数也可以用来复制散列数组(这种情况下不支持mask)。 例子: #include "cv.h"' #include "cxcore.h" #include "highgui.h" #include <iostream> using namespace std; int main () { IplImage* img = cvLoadImage("car11.bmp",-1); IplImage* biimg = cvCreateImage(cvGetSize(img),img->depth,img->nChannels); CvScalar s; int sum=0; for (int i=0;i<img->height;i++) { for (int j=0;j<img->width;j++) { s = cvGet2D(img,i,j); sum = (s.val[0]+s.val[1]+s.val[2])/3; if (sum > 100) { s.val[0]=s.val[1]=s.val[2]=255; cvSet2D(img,i,j,s); } else { s.val[0]=s.val[1]=s.val[2]=0; cvSet2D(img,i,j,s); } } } cvCopy(img,biimg); cvSaveImage("combibi.JPG",biimg); cvNamedWindow("imagebinary"); cvShowImage("imagebinary",biimg); cvWaitKey(0); cvDestroyWindow("imagebinary"); cvReleaseImage(&img); cvReleaseImage(&biimg); } 5、 阈值化函数 cvThreshold是opencv库中的一个函数 作用 函数 cvThreshold 对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像。(cvCmpS 也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大象素值的图像点。本函数支持的对图像取阈值的方法由 threshold_type 确定。 形式:void cvThreshold( const CvArr* src,CvArr* dst,double threshold,double max_value,int threshold_type ); 参数说明 src:原始数组 (单通道 , 8-bit of 32-bit 浮点数)。 dst:输出数组,必须与 src 的类型一致,或者为 8-bit。 threshold:阈值 max_value:使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。 threshold_type:阈值类型 threshold_type=CV_THRESH_BINARY:如果 src(x,y)>threshold ,dst(x,y) = max_value; 否则,dst(x,y)=0; threshold_type=CV_THRESH_BINARY_INV:如果 src(x,y)>threshold,dst(x,y) = 0; 否则,dst(x,y) = max_value. threshold_type=CV_THRESH_TRUNC:如果 src(x,y)>threshold,dst(x,y) = threshold; 否则dst(x,y) = src(x,y). threshold_type=CV_THRESH_TOZERO:如果src(x,y)>threshold,dst(x,y) = src(x,y) ; 否则 dst(x,y) = 0。 threshold_type=CV_THRESH_TOZERO_INV:如果 src(x,y)>threshold,dst(x,y) = 0 ; 否则dst(x,y) = src(x,y). cvAdaptiveThreshold函数 AdaptiveThreshold 自适应阈值方法 void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value, int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C, int threshold_type=CV_THRESH_BINARY, int block_size=3, double param1=5 ); src: 输入图像. dst: 输出图像. max_value: 使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值. adaptive_method: 自适应阈值算法使用:CV_ADAPTIVE_THRESH_MEAN_C 或 CV_ADAPTIVE_THRESH_GAUSSIAN_C (见讨论). threshold_type 取阈值类型:必须是下者之一 CV_THRESH_BINARY, CV_THRESH_BINARY_INV block_size 用来计算阈值的象素邻域大小: 3, 5, 7, ... param1 与方法有关的参数。对方法 CV_ADAPTIVE_THRESH_MEAN_C 和 CV_ADAPTIVE_THRESH_GAUSSIAN_C, 它是一个从均值或加权均值提取的常数(见讨论), 尽管它可以是负数。 cvFindContours函数 函数cvFindContours从二值图像中检索轮廓,并返回检测到的轮廓的个数。first_contour的值由函数填充返回,它的值将为第一个外轮廓的指针,当没有轮廓被检测到时为NULL。其它轮廓可以使用h_next和v_next连接,从first_contour到达。 简介 int cvFindContours( CvArr* image, CvMemStorage* storage, CvSeq** first_contour, int header_size=sizeof(CvContour), int mode=CV_RETR_LIST, int method=CV_CHAIN_APPROX_SIMPLE, CvPoint offset=cvPoint(0,0) ); Image: 8比特单通道的源二值图像。非零像素作为1处理,0像素保存不变。从一个灰度图像得到二值图像的函数有:cvThreshold,cvAdaptiveThreshold和cvCanny。 Storage:返回轮廓的容器。 first_contour:输出参数,用于存储指向第一个外接轮廓。 header_size:header序列的尺寸.如果选择method = CV_CHAIN_CODE, 则header_size >= sizeof(CvChain);其他,则 header_size >= sizeof(CvContour)。 Mode: CV_RETR_EXTERNAL:只检索最外面的轮廓; CV_RETR_LIST:检索所有的轮廓,并将其放入list中; CV_RETR_CCOMP:检索所有的轮廓,并将他们组织为两层:顶层是各部分的外部边界,第二层是空洞的边界; CV_RETR_TREE:检索所有的轮廓,并重构嵌套轮廓的整个层次。 蓝色表示v_next,绿色表示h_next Method: 边缘近似方法(除了CV_RETR_RUNS使用内置的近似,其他模式均使用此设定的近似算法)。可取值如下: CV_CHAIN_CODE:以Freeman链码的方式输出轮廓,所有其他方法输出多边形(顶点的序列)。 CV_CHAIN_APPROX_NONE:将所有的连码点,转换成点。 CV_CHAIN_APPROX_SIMPLE:压缩水平的、垂直的和斜的部分,也就是,函数只保留他们的终点部分。 CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS:使用the flavors of Teh-Chin chain近似算法 的一种。 CV_LINK_RUNS:通过连接水平段的1,使用完全不同的边缘提取算法。使用CV_RETR_LIST检索模式能使用此方法。 Offset: 偏移量,用于移动所有轮廓点。当轮廓是从图像的ROI提取的,并且需要在整个图像中分析时,这个参数将很有用。 讨论部分cvDrawContours中的案例显示了任何使用轮廓检测连通区域。轮廓可以用于形状分析和目标识别——可以参考文件夹OpenCV sample中的squares.c cvDrawContours函数 cvDrawContours:在图像上绘制外部和内部轮廓 函数cvDrawContours用于在图像上绘制外部和内部轮廓。当thickness >= 0 时,绘制轮廓线;否则填充由轮廓包围的部分。 void cvDrawContours( CvArr *img, CvSeq* contour, CvScalar external_color, CvScalar hole_color, int max_level, int thickness=1, int line_type=8, CvPoint offset=cvPoint(0,0) ); Img:要在其上绘制轮廓的图像。和在其他绘图函数里一样,轮廓是ROI的修剪结果。 Contour:指向第一个轮廓的指针。 external_color:外轮廓的颜色。 hole_color:内轮廓的颜色。 max_level:画轮廓的最大层数。如果是0,只绘制contour;如果是1,将绘制contour后和contour同层的所有轮廓;如果是2,绘制contour后所有同层和低一层的轮廓,以此类推;如果值是负值,则函数并不绘制contour后的轮廓,但是将画出其子轮廓,一直到abs(max_level) - 1层。 Thickness:绘制轮廓线的宽度。如果为负值(例如,等于CV_FILLED),则contour内部将被绘制。 line_type:轮廓线段的类型,具体查看cvLine的描述。 Offset:按给定值移动所有点的坐标。 cvCreateMemStorage函数 CvMemStorage *storage=cvCreateMemStorage(block_size); 用来创建一个内存存储器,来统一管理各种动态对象的内存。 函数返回一个新创建的内存存储器指针。 参数block_size对应内存器中每个内存块的大小,为0时内存块默认大小为64k。 CvSeq函数 CvSeq* cvCreateSeq(int seq_flags,int header_size,int elem_size,CvMemStorage* storage) 功能:创建一序列 说明:CvSeq本身就是一个可增长的序列,不是固定的序列 参数:seq_flags为序列的符号标志。如果序列不会被传递给任何使用特定序列的函数,那么将它设为0,否则从预定义的序列类型中选择一合适的类型。 Header_size为序列头部的大小;必须大于或等于sizeof(CvSeq)。如果制定了类型或它的扩展名,则此类型必须适合基类的头部大小。 Elem_size为元素的大小,以字节计。这个大小必须与序列类型(由seq_flags指定)相一致。例如,对于一个点的序列,元素类型 CV_SEQ_ELTYPE_POINT应当被指定,参数elem_size必须等同于sizeof(CvPoint)。Storage为指向前面定义的内存存储器. CvSeq*概述 对于CvSeq这一结构体,又称为可动态增长元素序列(OpenCV_1.0已发生改变,详见cxtypes.h) Growable sequence of elements。 CvSeq定义复杂,首先,定义CV_SEQUENCE_FIELDS()。 #define CV_SEQUENCE_FIELDS() \ int flags; /* micsellaneous flags */ \ int header_size; /* size of sequence header */ \ struct CvSeq* h_prev; /* previous sequence */ \ struct CvSeq* h_next; /* next sequence */ \ struct CvSeq* v_prev; /* 2nd previous sequence */ \ struct CvSeq* v_next; /* 2nd next sequence */ \ int total; /* total number of elements */ \ int elem_size;/* size of sequence element in bytes */ \ char* block_max;/* maximal bound of the last block */ \ char* ptr; /* current write pointer */ \ int delta_elems; /* how many elements allocated when the sequence grows (sequence granularity) */ \ CvMemStorage* storage; /* where the seq is stored */ \ CvSeqBlock* free_blocks; /* free blocks list */ \ CvSeqBlock* first; /* pointer to the first sequence block */ 而CvSeq可以表达成: typedef struct CvSeq { CV_SEQUENCE_FIELDS() } CvSeq; cvCanny函数 void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 ); 参数说明: image :输入单通道图像(可以是彩色图像)对于多通道的图像可以用cvCvtColor()修改。 edges :输出的边缘图像 ,也是单通道的,但是是黑白的 threshold1: 第一个阈值 threshold2 :第二个阈值 aperture_size Sobel :算子内核大小 函数 cvCanny 采用 Canny 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。 cvErode函数 cvErode,是opencv库中的一个函数。函数形式为:void cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );研究方法:src:输入图像。dst:输出图像。element:用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素,iterations:腐蚀的次数。 特点: 函数可以是本地操作,不需另外开辟存储空间的意思。腐蚀可以重复进行 (iterations) 次. 对彩色图像,每个彩色通道单独处理。 CreateStructuringElementEx 创建结构元素;ReleaseStructuringElement 删除结构元素。 一般和cvDilate一起使用;void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 ); 一起使用的效果是: cvErode()腐蚀后cvDilate()膨胀,叫作开操作,那些离散点或游丝线、毛刺就被过滤, cvDilate()膨胀后cvErode()腐蚀,叫作闭操作,那些断裂处就被缝合。 函数 cvErode 对输入图像使用指定的结构元素进行腐蚀,该结构元素决定每个具有最小值像素点的邻域形状: dst=erode(src,element): dst(x,y)=min((x',y') in element))src(x+x',y+y') cvDilate函数 函数名:cvDilate 接口形式: void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 ); 3参数说明: src 输入图像。 dst 输出图像。 element 结构元素。若为 NULL, 则使用默认的3×3 长方形,锚点在中心的结构元素,进行膨胀运算。 iterations 膨胀的次数,膨胀可以重复进行iterations次。对彩色图像,每个彩色通道单独处理。 函数功能: 函数 cvDilate 对输入图像使用指定的结构元进行膨胀。具体操作是:将输入图像与结构元素(核)进行卷积,计算结构元素覆盖的区域的像素点最大值,并把这个最大值赋值给参考点(锚点)所指定的像素。 使用任意结构元素膨胀图像,函数在调用中可以在输入图像上直接进行操作,如采用如下方式调用:cvDilate (img1, img1); cvHoughCircles函数 函数 CvSeq *cvHoughCircles(CvArr *image,void *circle_storage,int method,double dp,double min_dist,double param1,double param2,int min_radius,int max_radius) 参数 image:输入8bit(灰度)图像,其内容可被函数所改变 circle_storage:检测到的圆存储仓,可以是内存存储仓 (此种情况下,一个线段序列在存储仓中被创建,并且由函数返回)或者是包含圆参数的特殊类型的具有单行/单列的CV_32FC3型矩阵(CvMat*). 矩阵头为函数所修改,使得它的 cols/rows 将包含一组检测到的圆。如果 circle_storage 是矩阵,而实际圆的数目超过矩阵尺寸,那么最大可能数目的圆被返回,每个圆由三个浮点数表示:圆心坐标(x,y)和半径.). method:Hough 变换方式,目前只支持CV_HOUGH_GRADIENT, which is basically 21HT, described in [Yuen03]. dp:寻找圆弧圆心的累计分辨率,这个参数允许创建一个比输入图像分辨率低的累加器。(这样做是因为有理由认为图像中存在的圆会自然降低到与图像宽高相同数量的范畴)。如果dp设置为1,则分辨率是相同的;如果设置为更大的值(比如2),累加器的分辨率受此影响会变小(此情况下为一半)。dp的值不能比1小。 min_dist:该参数是让算法能明显区分的两个不同圆之间的最小距离。 param1:用于Canny的边缘阀值上限,下限被置为上限的一半。 param2:累加器的阀值。 The second method-specific parameter. In case of CV_HOUGH_GRADIENT it is accumulator threshold at the center detection stage. The smaller it is, the more false circles may be detected. Circles, corresponding to the larger accumulator values, will be returned first. min_radius:最小圆半径。 max_radius:最大圆半径。[1] 说明 该函数用Hough变换在二值图像中中寻找圆,成功时返回CvSeq指针。 25、 垂直投影和
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:opencv函数总结.doc
    链接地址:https://www.zixin.com.cn/doc/11258085.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork