当前位置:编程学习 > C#/ASP.NET >>

在Panel上绘制拉出视频的人物运动轨迹

愚生初进公司,做一款安防报警软件~现在我拉一路视频,如何去绘制出人物的移动轨迹呢~ --------------------编程问答-------------------- 这个问题,公司没有做好的算法,让你从头开始写,你的工作难度不小。 --------------------编程问答-------------------- 去买别人的吧,自己从头写,不研究个几年写不出的。 --------------------编程问答--------------------
引用 1 楼 mjp1234airen4385 的回复:
这个问题,公司没有做好的算法,让你从头开始写,你的工作难度不小。

现在很伤脑筋的是,我第一步是不是应该去识别人物运动的起点跟终点坐标,还有人是可以走走停停的呀,画这个连续轨迹应该还不知一个起点的吧 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 yuwenge 的回复:
去买别人的吧,自己从头写,不研究个几年写不出的。

额~……不是吧,我感觉这样的需求应该听多的呀,有木有个好的简单的方法呀,一个小demo我慢慢研究也行啊 --------------------编程问答--------------------
引用 4 楼 wangweimutou 的回复:
 
有硬件基础的话 就去买一个吧
我用Socket NetworkStream传输过视频监视的画面的流,但好像不怎么样

拉实时视频流倒不难,现在就是如何在这个视频上画物体移动轨迹,哎~好像很烦的样子 --------------------编程问答--------------------
引用 6 楼 wwwcarl 的回复:
Quote: 引用 4 楼 wangweimutou 的回复:

 
有硬件基础的话 就去买一个吧
我用Socket NetworkStream传输过视频监视的画面的流,但好像不怎么样

拉实时视频流倒不难,现在就是如何在这个视频上画物体移动轨迹,哎~好像很烦的样子

实时视频流也不简单,这个如果仅仅是看视频也就简单了。
如果是视频分发,广播,除了给电脑看,还要给手机看,
再加入各种人员行为识别,比如:行走、徘徊、越线、物品滞留...
--------------------编程问答--------------------
引用 7 楼 mjp1234airen4385 的回复:
Quote: 引用 6 楼 wwwcarl 的回复:

Quote: 引用 4 楼 wangweimutou 的回复:

 
有硬件基础的话 就去买一个吧
我用Socket NetworkStream传输过视频监视的画面的流,但好像不怎么样

拉实时视频流倒不难,现在就是如何在这个视频上画物体移动轨迹,哎~好像很烦的样子

实时视频流也不简单,这个如果仅仅是看视频也就简单了。
如果是视频分发,广播,除了给电脑看,还要给手机看,
再加入各种人员行为识别,比如:行走、徘徊、越线、物品滞留...

我可不可以先通过XML解析,先读出人物在行走过程中经过的几个坐标,然后把这几个坐标点连起来,近似地看作行走的曲线呢~因为我解析了几个经过的坐标点出来了,我想接着这个解析后面做~
<NumOfLayoutElements>1</NumOfLayoutElements>
<LayoutElement>
<Layer>ROI</Layer>
<EventName>VMD</EventName>
<RuleBitNumber>0</RuleBitNumber>
<Color>255,0,255</Color>
<ElementType>Polyline</ElementType>
<ThePoints>
<NumberOfPoints>5</NumberOfPoints>
<ElementPoints>9,6;338,6;338,283;9,283;9,6</ElementPoints>
</ThePoints>
</LayoutElement>
</XMLLayoutMessage>

ElementPoints里的即是几个坐标,但是解析这个xml是会随着视频变化而再发送新的xml的 --------------------编程问答-------------------- 那你按照公司要求做吧,你先确认按照坐标点画出一条线,是否是公司的需求。
如果符合公司需求,那就画线了,接着捕捉下一个xml里的坐标点。
你就可以实现了。 --------------------编程问答--------------------
引用 9 楼 mjp1234airen4385 的回复:
那你按照公司要求做吧,你先确认按照坐标点画出一条线,是否是公司的需求。
如果符合公司需求,那就画线了,接着捕捉下一个xml里的坐标点。
你就可以实现了。

额~愚生又遇到了一个问题,向前辈探讨一个好的方法~
我现在想用
graphics.DrawLines(p, m_PointArr);

来画出轨迹,然后我需要将捕捉的坐标点放进Point[] m_PointArr;里,写的代码如下
 try
            {
                XmlDocument xml = new XmlDocument();
                XmlNodeList xmlNodeList;
                Point[] m_PointArr;

                if (!string.IsNullOrEmpty(msgAlarm.MateMetaData.Xmlmessage))
                {

                    xml.LoadXml(msgAlarm.MateMetaData.Xmlmessage);

                    if (msgAlarm.MateMetaData.Messagetype.Contains("XMLLayoutMessage"))
                    {
                        xmlNodeList = xml.GetElementsByTagName("ElementPoints");
                        if (xmlNodeList != null && xmlNodeList.Count > 0)
                        {
                            //string s = xmlNodeList[0].InnerText.Trim();
                            //input.point = s.Split(';')[0];
                            //如何提取
                        }
                        return;
                    }
                    return;
                }

            }
            catch (Exception ex)
            {


            }

前辈看一下之前的xml,那个坐标点放进m_PointArr数组里用split能实现吗,if里面应该怎么实现呢? --------------------编程问答-------------------- 用最基础的方法就行。
string[] a = s.Split(';');
Point[] m_PointArr = new Point[a.length];
for(int i = 0; i < a.length; i++)
{
m_PointArr[i].X = int.Parse(a[i].Split(',')[0]);
m_PointArr[i].Y = int.Parse(a[i].Split(',')[1]);
} --------------------编程问答--------------------
引用 11 楼 mjp1234airen4385 的回复:
用最基础的方法就行。
string[] a = s.Split(';');
Point[] m_PointArr = new Point[a.length];
for(int i = 0; i < a.length; i++)
{
m_PointArr[i].X = int.Parse(a[i].Split(',')[0]);
m_PointArr[i].Y = int.Parse(a[i].Split(',')[1]);
}

谢谢前辈指教
刚从大学走进公司,做项目一大堆问题
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,