opencv 常用函数说明(2)

2019-08-29 18:33

被创建的trackbar默认显示在指定窗口的顶端,可以通过函数

cvGetTrackbarPos来获取trackbar显示的位置信息,以及通过函数cvSetTrackbarPos来重新设置trackbar的显示位置。

/**************************************************************/

21.鲁棒是Robust的音译,也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。

22.背景差分法的原理是先通过一定的算法或人为的选取一张没有车辆的背景图像,之后的视频序列都通过与背景相减得到差值图像,再通过阈值化分割获取二值图像,从而达到检测车辆的目的。该方法中,背景是需要实时更新的,以满足其准确性。

23.由于视频检测系统的应用场合为各种交通要道或十字路口,而这种户外环境会受到光照条件和气候环境以及各种人为的原因而造成不断的变化,因此检测的道路场景中背景是不断的变化的,而在视频检测系统中,如何提取有效而实时的背景更新算法对车辆信息的提取有着决定性的作用。 更新流程如下:

(1)获取第一帧图像作为背景图像 B 。

(2)如果背景图像存在,则将前景图像与背景图像进行差分,通过前景分割,获得 前景车辆图像,否则回到第一步。

(3)对新的每一帧图像,和当前背景图像B进行更新。 滑动平均更新方法在路面车辆较少时效果较好,但是当路面车流量比较大时,前景车辆占整个图像的比例增加,导致获得的背景图像中含有车辆的成分增加,产生失真. 24.

1)获取视频帧:从安装在交通场景中的视频采集设备中获取视频流。

2)视频图像预处理:对采集的视频流转换到需要的色彩空间进行处理,滤除图 像的噪声,设置图像的感兴趣区域。

3)背景初始化与更新:如果此时背景没有初始化,则需要对交通场景图像进行 初始化,否则对背景进行更新。

4)提取前景车辆图像:主要涉及到的操作包括有图像分割,将前景与背景进行 分割,阈值化处理得到车辆的二值化图像。

5)阴影检测:对提取的前景二值图像滤除阴影,提高判断的准确率。 6)提取车辆特征,判断车辆是否违章。

25.车辆检测:在摄像机视野当中是否有车辆出现以及车辆在监控区域中任意时刻的位t.它包含了对目标物体特征的精确判别以及对目标物体的跟踪,是动态的、连续的过程.不但提供车辆到达信息.还实时提供车辆位工变化信:.提供的信息是连续的.多样化的。

26.从摄像头或者视频文件中抓取帧

int cvGrabFrame( CvCapture* capture ); capture

视频获取结构。

函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。

抓取后,capture被指向下一帧,可用cvSetCaptureProperty调整capture到合适的帧。 注意: cvQueryFrame返回的指针总是指向同一块内存。建议cvQueryFrame后拷贝一份。而且返回的帧需要FLIP后才符合OPENCV的坐标系。 若返回值为NULL,说明到了视频的最后一帧或失败!

27. cvZero(img);相当于初始化图片,值都为0,矩阵大小为640*480 cvShowImage(\就显示一幅黑色,且值都为零的图像

28. 函数形式

void cvUpdateMotionHistory( const CvArr* silhouette, CvArr* mhi, double timestamp, double duration );

参数

? silhouette

? 影像 mask,运动发生地方具有非零象素 ? mhi

? 运动历史图像(单通道, 32-比特 浮点数),为本函数所更新 ? timestamp

? 当前时间,毫秒或其它单位 ? duration

? 运动跟踪的最大持续时间,用 timestamp 一样的时间单位

说明

函数 cvUpdateMotionHistory 用下面方式更新运动历史图像: mhi(x,y)=timestamp if silhouette(x,y)!=0 0 if silhouette(x,y)=0 and mhi(x,y)

也就是,MHI(motion history image) 中在运动发生的象素点被设置为当前时间戳,而运动发生较久的象素点被清除。

#include #include

int main(int argc, char **argv) {

if (argc != 2) return -1;

/*强制转换为灰度图像*/

IplImage *img = cvLoadImage(argv[1], 0);

cvNamedWindow(\cvShowImage(\cvWaitKey(0);

cvReleaseImage(&img); cvDestroyWindow(\return 0; }

29. void *memset(void *s, int ch, size_t n);

函数解释:将s中前n个字节 (typedef unsigned int size_t)用 ch 替换并返回 s 。 memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法[

30.

函数cvFindContours从二值图像中检索轮廓,并返回检测到的轮廓的个数。

first_contour的值由函数填充返回,它的值将为第一个外轮廓的指针,当没有轮廓被检测到时为NULL。其它轮廓可以使用h_next和v_next连接,从first_contour到达。

31 CvMemStorage *storage=cvCreateMemStorage(block_size); 用来创建一个内存存储器,来统一管理各种动态对象的内存。 函数返回一个新创建的内存存储器指针。

参数block_size对应内存器中每个内存块的大小,为0时内存块默认大小为64k。 32.

图像处理API函数库: *

* LinerTrans() - 图像线性变换 * WindowTrans() - 图像窗口变换

* GrayStretch() - 图像灰度拉伸 * InteEqualize() -直方图均衡

* ZoomDIB() - 图像缩放 * RotateDIB() - 图像旋转

* ErosionDIB() - 图像腐蚀 * DilationDIB() - 图像膨胀 * OpenDIB() - 图像开运算 * CloseDIB() - 图像闭运算 * ThiningDIB() - 图像细化

* RobertDIB() - robert边缘检测运算 * SobelDIB() - sobel边缘检测运算 * PrewittDIB() - prewitt边缘检测运算 * KirschDIB() - kirsch边缘检测运算

* GaussDIB() - gauss边缘检测运算 *

* Template() - 图像模板变换,通过改变模板,可以用它实现 * 图像的平滑、锐化、边缘识别等操作。 * MedianFilter() - 图像中值滤波。 * GetMedianNum() - 获取中值。被函数MedianFilter()调用来求中值。 *

* RowScanDIB() - 基于行扫描的车牌提取 * CharacterUnit() - 字符归一化 *

* BpTrain() - BP网络训练 * BpReco() - BP网络识别 *

* ContourDIB() - 轮廓提取 * TraceDIB() - 轮廓跟踪 *

* FFT() - 快速付立叶变换 * IFFT() - 快速付立叶反变换 * DCT() - 离散余弦变换 * WALSH() - 沃尔什-哈达玛变换 *

* Fourier() - 图像的付立叶变换 * DIBDct() - 图像的离散余弦变换 * DIBWalsh() - 图像的沃尔什-哈达玛变换 *

* ThresholdDIB() - 图像阈值分割运算 * AddMinusDIB() - 图像加减运算 * HprojectDIB() - 图像水平投影 * VprojectDIB() - 图像垂直投影 * TemplateDIB() - 图像模板匹配运算 *

* Distance13() - 计算距离图像点最近的段 * CharExtract13Sect() - 13段投影法特征提取

* DistanceStruct() - 微结构特征提取法中求待识字符 - 特征向量与字典中各特征向量间 - 的最小距离

double cvGetCaptureProperty( CvCapture* capture, int property_id ); capture 视频获取结构。

33. int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change ); 参数:

trackbar_name 被创建的trackbar名字。

window_name 窗口名字,这个窗口将为被创建trackbar的父对象。

value 整数指针,它的值将反映滑块的位置。这个变量指定创建时的滑块位置。 count 滑块位置的最大值。最小值一直是0。

on_change 每次滑块位置被改变的时候,被调用函数的指针。这个函数应该被声明为void Foo(int); 如果没有回调函数,这个值可以设为NULL。

函数cvCreateTrackbar用指定的名字和范围来创建trackbar(滑块或者范围控制),指定与trackbar位置同步的变量,并且指定当trackbar位置被改变的时候调用的回调函数。 被创建的trackbar默认显示在指定窗口的顶端,可以通过函数cvGetTrackbarPos来获取trackbar显示的位置信息,以及通过函数cvSetTrackbarPos来重新设置trackbar的显示位置。

34. HighGUI参考手册

中文翻译者:

? ?

于仕琪,中科院自动化所自由软件协会 张兆翔,中科院自动化所自由软件协会

? ? ? ? ? 简单图形界面 读取与保存图像 视频读写

实用函数与系统函数

按字母顺序排列的函数列表

HighGUI概述

TODO

简单图形界面

cvNamedWindow


opencv 常用函数说明(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Quartus常见错误分析 Error

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: