递归火山软件开发平台
标题:
请问一下CV库的多目标跟踪怎么使用呢
[打印本页]
作者:
赵曰天
时间:
2023-8-16 13:36
标题:
请问一下CV库的多目标跟踪怎么使用呢
一直没明白
作者:
赵曰天
时间:
2023-8-16 13:38
<火山程序 类型 = "通常" 版本 = 1 />
包 火山.程序
类 启动类 <公开 基础类 = 窗口程序类>
{
变量 主窗口对象 <类型 = 我的主窗口>
方法 启动方法 <公开 类型 = 整数>
{
主窗口对象.创建主窗口 ()
返回 (1)
}
}
# ===
类 我的主窗口 <基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"500, 300\"" 标题 = "我的主窗口">
{
变量 视频地址 <公开 类型 = 文本型 值 = "G:\\target_tracking\\vtest.avi">
变量 按钮1 <类型 = 按钮 隐藏值属性 = "0" @视窗.布局 = "id = 101\r\npos = \"173, 22, 120, 40\"" 标题 = "打开视频">
变量 视频 <公开 类型 = CV视频>
变量 当前帧 <公开 类型 = CV矩阵类>
变量 单目标跟踪 <公开 类型 = CV单目标跟踪器>
变量 多目标跟踪 <公开 类型 = CV多目标跟踪器TLD>
变量 ROT <公开 类型 = CV矩形类>
变量 ROT1 <公开 类型 = CV矩形类>
变量 ROT2 <公开 类型 = CV矩形类>
变量 ROT3 <公开 类型 = CV矩形类>
变量 初始化ROT <公开 类型 = CV矩形类小数>
变量 初始化ROT2 <类型 = CV矩形类小数>
变量 初始化ROT3 <类型 = CV矩形类小数>
变量 ROT容器 <公开 类型 = CV矩形类容器>
变量 ROT容器小数 <类型 = CV矩形类小数容器>
方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
如果 (来源对象 == 按钮1)
{
如果真 (视频.打开视频 (视频地址, ) == 假)
{
信息框 ("视频不存在!", , )
}
视频.取当前帧 (当前帧)
ROT容器.加入成员 (ROT1)
ROT容器.加入成员 (ROT2)
ROT容器.加入成员 (ROT3)
调试输出 ("ROT容器成员数:" + 到文本 (ROT容器.取成员数 ()))
CV核心.
单目标跟踪.初始化 (当前帧, ROT1)
单目标跟踪.初始化 (当前帧, ROT2)
单目标跟踪.初始化 (当前帧, ROT3)
单目标跟踪.创建KFC跟踪器 ()
CV核心.选择ROI多个 ("选择窗口", 当前帧, ROT容器, , )
ROT容器小数.加入成员 (初始化ROT)
ROT容器小数.加入成员 (初始化ROT2)
ROT容器小数.加入成员 (初始化ROT3)
判断循环 (当前帧.是否为空 () == 假)
{
当前帧.释放 ()
视频.取当前帧 (当前帧)
如果 (当前帧.是否为空 () == 真)
{
返回 (1)
}
调试输出 ("这里1")
单目标跟踪.更新跟踪器 (当前帧, ROT1)
// 单目标跟踪.更新跟踪器 (当前帧, ROT2)
// 单目标跟踪.更新跟踪器 (当前帧, ROT3)
多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT)
多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT2)
多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT3)
多目标跟踪.更新ROI (当前帧)
ROT容器小数 = 多目标跟踪.获取目标ROI ()
// CV核心.画矩形小数 (当前帧, ROT容器小数.取成员 (1), CV标量类.新建三通道 (0, 255, 100), , )
调试输出 ("这里3")
// CV核心.画矩形小数 (当前帧, ROT容器小数.取成员 (1), CV标量类.新建三通道 (0, 255, 100), , )
// CV核心.画矩形小数 (当前帧, ROT容器小数.取成员 (2), CV标量类.新建三通道 (0, 255, 100), , )
调试输出 ("ROT容器数量:" + 到文本 (ROT容器小数.取成员数 ()))
// CV核心.画矩形 (当前帧, ROT, CV标量类.新建三通道 (100, 0, 200), , )
// CV核心.画矩形 (当前帧, ROT2, CV标量类.新建三通道 (0, 0, 200), , )
// CV核心.画矩形 (当前帧, ROT3, CV标量类.新建三通道 (0, 100, 200), , )
CV核心.显示图像 ("当前帧图像", 当前帧, , )
如果真 (CV核心.等待按键 (5) == 27)
{
跳出循环
}
}
调试输出 ("这里2")
}
返回 (0)
}
}
多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT) 这里一直返回假的。不知道有没有大佬写一个多目标的例子呢
作者:
赵曰天
时间:
2023-8-16 14:48
作者:
赵曰天
时间:
2023-8-16 15:43
作者:
赵曰天
时间:
2023-8-16 15:53
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4