(a)图片原图(a)artwork
(b)图片灰度处理图(c)图片OTSU二值处理图
(b)Image gray processing map(c)OTSU image binary processing map
图 4.3 阈值二值化比较示意图
Fig. 4.3 Threshold binarization is schematic diagram
通过实验结果图可以发现在用了OTSU最大类间方差法后,图像被分割成了前景、背景两个图像。在选取到最佳的阈值之后,背景与前景的差别将会是非常大的,为了能够提高分割的精度,如何选择衡量差别的标准就成为了关键。此算法就成功克服了这一难题,通过算法不断地计算和叠加,得到最佳阈值,使分割效果图更加精确。
4.1.3 视频中检测、跟踪前景运动物体的实验参数的选取和效果图
本实验的二值图像是被经过阈值分割形成的,此结果图是被RGB空间检测出的。
实验参数的选取:
1)cvCanny( pFrImg,forecanny,50,75,3);
对前景图像进行canny 检测,提取边缘。其输出图像有两个阈值threshold1、threshold2,可以计算aperture_sizeSobel 内核大小(其详细可见函数cvSobel说明)。函数 cvCanny 采用了CANNY 算法检测出输入图像的边缘,同时在输出图像中标识这些边缘。两个阈值threshold1和threshold2参数的意义为:小阈值用来控制边缘连接,大阈值用来控制强边缘的初始分割。实验参数选取了大参数75,小参数为50。最后一个参数一般默认:aperture_sizeSobel=3。
2)cvThreshold(pFrMat, pFrImg, 50, 255.0, CV_THRESH_BINARY);
阈值选取:50,大于此阈值时,取最大值255。
3)cvFloodFill(tempimage,seed,cvScalar(255),cvScalar(0),cvScalar(0),NULL,
8|CV_FLOODFILL_FIXED_RANGE|CV_FLOODFILL_MASK_ONLY|(255<<8),NULL);
此函数负责进行漫水法的填充,从点seedpoint开始进行算法,第一个cvScalar决定了像素点的染色值,第二个cvScalar作为下标记,被染色的相邻像素点减去此值,第三个cvScalar作为上标记,被染色的相邻像素点加上此值。实验中,参数设定为填充色为白色,下、上标记都取为黑色。
如图4.4所示,当检测环境在夜晚时移动物体被检测到时的效果图,右边为实时采集图检测跟踪的效果图,左边是在对于目标物体检测出轮廓后进行图像的填充的效果图。从结果图中,能够看出,OpenCV可以被用来检测出夜晚的移动的目标物体,并且其跟踪效果也较为良好,检测的难度将会被大大增加,如果运动物体和背景图的颜色较为相似的话,甚至可能会出现无法检测出的结果,因此为了使检测系统可以适应不同环境下的不同情况,就必须要自己手动改变一些参数,还要不停的调整和优化程序。
图 4.4 OpenCV夜晚检测运动物体实验结果图
Fig. 4.4 OpenCV night moving object detection test result diagram
背景为白天时,实验参数的选取:
4)cvCanny( pFrImg,forecanny,50,75,3);
5)cvThreshold(pFrMat, pFrImg, 64, 255.0, CV_THRESH_BINARY);
阈值选取:64,大于此阈值时,取最大值255。
6)cvCanny( pFrImg,forecanny,50,75,3);
8|CV_FLOODFILL_FIXED_RANGE|CV_FLOODFILL_MASK_ONLY|(255<<8),NULL);
三个阈值分为取为:cvScalar1=255;cvScalar2=0;cvScalar3=0。
图4.5为实验结果图:从图中可以看出,相对于处于位置较远的运动物体在检测视屏中,需要调试参数,在实际操作中,速度较快的物体如何被检测跟踪是个难点。
图 4.5 白天检测运动物体的效果图
Fig. 4.5 The day detection of moving objects by rendering
4.2 OpenCV的跟踪框架搭建——结合OpenCV 模块设计实验结果 OpenCV移动目标物体的检测跟踪的研究(13):http://www.youerw.com/jisuanji/lunwen_524.html