介绍
跟踪对象的基本思想是找到对象的轮廓,基于HSV颜色值。
轮廓:突出显示对象的图像片段。例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色突出显示,而其他则为黑色。白色部分称为轮廓。
在继续下面的操作之前,请在系统中安装OpenCV。打开命令提示符并键入
步骤1:从相机读取数据
参数0-用于主相机,例如在笔记本电脑网络摄像头中被视为主相机。1-代表中学,依此类推。
步骤2:预处理框架
1、使用高斯滤波器对图像进行归一化。归一化图像可能会丢失许多小信息,但是我们需要归一化/模糊图像,以使我们的对象获得均等的颜色分布。
#cv2.gaussianBlur(source_image,Kernal_size,Border_width)
2、将图像转换为HSV颜色模型。
步骤3:找到对应对象的HSV颜色
步骤4:阈值化
在给定的HSV值范围内应用二进制阈值,黑白Obj_low和Obj_high。
#MASK2 = cv2.inRange(HSV,Obj2_low,Obj2_high)
如果尝试跟踪两个不同的对象,则需要创建2个不同的蒙版,并最终在两个蒙版上使用“按位与”运算符。
#mask = cv2.bitwise_and(mask1,mask2)
侵蚀和膨胀:侵蚀和膨胀填充阈值图像中的黑色和白色斑点。这样可使图像更清晰,平滑并突出主要对象。
步骤5:在图像中查找轮廓
轮廓:突出显示对象的图像片段。例如,如果将二进制阈值应用于具有(180,255)的图像,则大于180的像素将以白色突出显示,而其他则为黑色。白色部分称为轮廓。
在上面给定的图像中,整个白色边界区域是轮廓。轮廓可能不止一个,但主要对象的面积将最大。所以选择轮廓最大。然后..
步骤6:在对象上绘制圆
得到主要物体的轮廓后,在轮廓上画一个圆。
对象跟踪程序代码