我现在用一个视频分析软件分析路况视频,分析软件能够给出视频里每一帧中物体的位置信息,即给出能包含这个物体的方框的坐标和长宽信息,我要实现的功能就是让这个框随视频帧变化即动态跟踪这个物体。
我的做法是取出视频帧,画上框,然后再画上图像,代码是这样的 singleTargetData.imageDatas[0] = imageData;
Stream s = new MemoryStream(singleTargetData.imageDatas[0]);
Image image = Image.FromStream(s);
s.Close();
panelImage1.Refresh();
CleanImagePanel(panelImage2);
AddImageToPanel(panelImage2, image);
foreach (XmlNode node in analyticsTargetList.ChildNodes)
{
switch (node.Name)
{
case "Targets":
foreach (XmlNode node2 in node.ChildNodes)
{
Graphics g = Graphics.FromHwnd(panelImage1.Handle);
DrawTargetBoundingBox(g, node2, image.Size.Width, image.Size.Height);
g.Dispose();
}
break;
}
}我现在在panelImage1和panelImage2中分别画动态框框和动态视频,但是如果画在同一个panel中只能实现动态视频,框框被刷新了 要实现动态的框框和视频在一个控件里 代码该怎么写呢 这方面不太熟,大家给指点下啊
我的做法是取出视频帧,画上框,然后再画上图像,代码是这样的 singleTargetData.imageDatas[0] = imageData;
Stream s = new MemoryStream(singleTargetData.imageDatas[0]);
Image image = Image.FromStream(s);
s.Close();
panelImage1.Refresh();
CleanImagePanel(panelImage2);
AddImageToPanel(panelImage2, image);
foreach (XmlNode node in analyticsTargetList.ChildNodes)
{
switch (node.Name)
{
case "Targets":
foreach (XmlNode node2 in node.ChildNodes)
{
Graphics g = Graphics.FromHwnd(panelImage1.Handle);
DrawTargetBoundingBox(g, node2, image.Size.Width, image.Size.Height);
g.Dispose();
}
break;
}
}我现在在panelImage1和panelImage2中分别画动态框框和动态视频,但是如果画在同一个panel中只能实现动态视频,框框被刷新了 要实现动态的框框和视频在一个控件里 代码该怎么写呢 这方面不太熟,大家给指点下啊
解决方案 »
- 根据具体情况判断程序是否只能单实例
- 代码实现以下逻辑
- 关于Graphics 和IntPtr 和DllImport("User32.dll")的一些问题???
- ado.net 使用OracleClient 组件连接Oracle数据库 连接字符串问题
- 想把在GridView编辑的多列数据作为新数据重新插入数据库表中.请进!
- WEB方式下如何用权限来控制文件的上传或者下载!
- 时间格式问题
- ???问一个用户控件使用问题???
- 基础不牢靠啊 大家指点一下
- C#获取JavaScript中的数据
- !!!!!!!!!!要将一个含有二进制数据文件分别还原为.txt和JPEG图片怎么实现??????????????????????????
- c#页面加载的功能
Stream s = new MemoryStream(singleTargetData.imageDatas[0]);
Image image = Image.FromStream(s);
s.Close();
CleanImagePanel(panelImage1);
foreach (XmlNode node in analyticsTargetList.ChildNodes)
{
switch (node.Name)
{
case "Targets":
foreach (XmlNode node2 in node.ChildNodes)
{
Graphics g = Graphics.FromImage(image);
//这里把框画在image里 DrawTargetBoundingBox(g, node2, image.Size.Width, image.Size.Height);
g.Dispose();
}
break;
}
}
AddImageToPanel(panelImage1, image);