LinkSVP例子之四:机器视觉基础演示,使用LinkIVE实现移动检测

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_45326556/article/details/100017328

背景

    参见LinkSVP例子之一背静介绍。

LinkSVP简介

    参见LinkSVP例子之一LinkSVP介绍。

MotionDetect实现移动检测示例

该示例程序演示了如何使用LinkIVE进行一个相对完整的移动检测功能开发。

准备工作

  • 参照用户手册搭建开发环境、编译3531D工程、配置网络启动参数。
  • 将带有HDMI输出功能的设备(如摄像机、笔记本、机顶盒等)接入评估板的HDMI-A接口
  • 将评估板的HDMI-OUT接显示器(支持1080P即可,程序默认输出1080P60)。
  • 上电,进入/root/demo目录
  • 运行MotionDetect程序

运行结果

在这里插入图片描述
在这里插入图片描述

完整工程

完整工程参见:https://gitee.com/LinkPi/LinkSVP/tree/master/MotionDetect

主要源代码

main.cpp

#include <QCoreApplication>
#include "Link.h"
#include "MotionDetect.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Link::init();

    LinkObject *vi=Link::create("InputVi");
    QVariantMap dataVi;
    dataVi["interface"]="HDMI-A";
    vi->start(dataVi);

    MotionDetect *MD=new MotionDetect();
    QVariantMap dataMD;
    dataMD["framerate"]=4;
    MD->start(dataMD);

    LinkObject *vo=Link::create("OutputVo");
    QVariantMap dataVo;
    dataVo["type"]="hdmi";
    vo->start(dataVo);

    vi->linkV(MD)->linkV(vo);

    return a.exec();
}

MotionDetect.cpp

#include "MotionDetect.h"

MotionDetect::MotionDetect(QObject *parent) : LinkFrame(parent)
{
    data["framerate"]=4;
    data["width"]=640;
    data["height"]=360;
    data["thresh"]=30;
    data["area"]=800;

    mem["pre"]=IVEMem(640,360);
    mem["ccl"]=IVEMem(640,360);
}

void MotionDetect::oneFrame()
{

    Sub(mem["in"],mem["pre"],mem["out"]);
    thresh(mem["out"],mem["out"],data["thresh"].toInt());
    erode(mem["out"],mem["out"],3);
    dilate(mem["out"],mem["out"],5);
    copy(mem["out"],mem["ccl"]);
    wait();
    QVariantList list=CCL(mem["ccl"],data["area"].toInt());

    copy(mem["in"],mem["pre"]);
    wait();

    if(list.count()>0)
    {
        qDebug("######################################");
        for(int i=0;i<list.count();i++)
        {
            qDebug()<<list[i];
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_45326556/article/details/100017328