递归火山软件开发平台

标题: 请问一下大佬,CV的多目标检测怎么使用呢 [打印本页]

作者: 赵曰天    时间: 2023-8-15 23:13
标题: 请问一下大佬,CV的多目标检测怎么使用呢
<火山程序 类型 = "通常" 版本 = 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矩形类容器>

    方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
    参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
        如果 (来源对象 == 按钮1)
        {

            如果真 (视频.打开视频 (视频地址, ) == 假)
            {
                信息框 ("视频不存在!", , )
            }
            视频.取当前帧 (当前帧)
            ROT容器.加入成员 (ROT1)
            ROT容器.加入成员 (ROT2)
            ROT容器.加入成员 (ROT3)

            调试输出 ("ROT容器成员数:" + 到文本 (ROT容器.取成员数 ()))



            单目标跟踪.初始化 (当前帧, ROT1)
            单目标跟踪.初始化 (当前帧, ROT2)
            单目标跟踪.初始化 (当前帧, ROT3)
            单目标跟踪.创建KFC跟踪器 ()
            CV核心.选择ROI多个 ("选择窗口", 当前帧, ROT容器, , )

            判断循环 (当前帧.是否为空 () == 假)
            {
                当前帧.释放 ()
                视频.取当前帧 (当前帧)

                如果 (当前帧.是否为空 () == 真)
                {
                    返回 (1)
                }

                调试输出 ("这里1")
                单目标跟踪.更新跟踪器 (当前帧, ROT1)
                // 单目标跟踪.更新跟踪器 (当前帧, ROT2)
                // 单目标跟踪.更新跟踪器 (当前帧, ROT3)

                多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT)
                多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT2)
                多目标跟踪.添加_单个目标 (单目标跟踪, 当前帧, 初始化ROT3)
                调试输出 (多目标跟踪.更新ROI (当前帧))

                CV核心.画矩形 (当前帧, ROT1, CV标量类.新建三通道 (100, 0, 200), , )
                CV核心.画矩形 (当前帧, ROT2, CV标量类.新建三通道 (0, 0, 200), , )
                CV核心.画矩形 (当前帧, ROT3, CV标量类.新建三通道 (0, 100, 200), , )
                CV核心.显示图像 ("当前帧图像", 当前帧, , )

                如果真 (CV核心.等待按键 (5) == 27)
                {
                    跳出循环
                }



            }


            调试输出 ("这里2")




        }
        返回 (0)
    }
}



作者: 赵曰天    时间: 2023-8-15 23:14
多目标跟踪.添加_单个目标  这里一直是假,没有添加成功。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4