c# 如何将摄像头捕获的数据流进行分析和鼠标的动态移动

fansf2008 2014-01-21 02:36:21
最近在做一个东西,就是通过视频采集卡将摄像头采集到的信息显示在winform的窗体中,并且根据捕获的视频的变化,鼠标也要随着winform显示的图像中的物体的移动而移动。现在的视频采集已经完成,可以正常显示出来,但是如何对视频中的数据进行分析判断得出上一贞和下一帧直接差异,并且让鼠标随之移动。比如一个点的移动,鼠标可以跟着点的移动而移动,求大神指点。
...全文
361 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcguoji 2016-01-17
  • 打赏
  • 举报
回复
引用 8 楼 fansf2008 的回复:
此功能已经完成。总结一下,我的数据流是yuy2格式的,所以我只需要判断y分量,因为我检测的是激光束的坐标位置,只需要判断明暗度。所以直接获取数据流将y分量进行二值化处理0或255,u,v分量128,这样图像就变成黑白图像,然后查找黑色区域的坐标,将鼠标重新置为该坐标,调用API函数实现鼠标单击动作,如果是RGB图像一样,需要进行灰度处理,二值化处理,同理。 需要注意的就是效率,随着图像的大小处理效率不同,所以我引入了不安全代码用c++进行处理,第一次采用像素法效率太低,经常卡,后来改为内存法,速度非常快,完全跟的上图像采集的速度。
如果能提供你项目的代码就更好了,我想获取每一帧图像的每个像素的值,不知道c#是怎么做到的
zcguoji 2016-01-17
  • 打赏
  • 举报
回复
引用 8 楼 fansf2008 的回复:
此功能已经完成。总结一下,我的数据流是yuy2格式的,所以我只需要判断y分量,因为我检测的是激光束的坐标位置,只需要判断明暗度。所以直接获取数据流将y分量进行二值化处理0或255,u,v分量128,这样图像就变成黑白图像,然后查找黑色区域的坐标,将鼠标重新置为该坐标,调用API函数实现鼠标单击动作,如果是RGB图像一样,需要进行灰度处理,二值化处理,同理。 需要注意的就是效率,随着图像的大小处理效率不同,所以我引入了不安全代码用c++进行处理,第一次采用像素法效率太低,经常卡,后来改为内存法,速度非常快,完全跟的上图像采集的速度。
请问你图像采集是用摄像头吗?c#如何获取摄像头硬件的像素值等数据,谢谢
fansf2008 2014-02-10
  • 打赏
  • 举报
回复
此功能已经完成。总结一下,我的数据流是yuy2格式的,所以我只需要判断y分量,因为我检测的是激光束的坐标位置,只需要判断明暗度。所以直接获取数据流将y分量进行二值化处理0或255,u,v分量128,这样图像就变成黑白图像,然后查找黑色区域的坐标,将鼠标重新置为该坐标,调用API函数实现鼠标单击动作,如果是RGB图像一样,需要进行灰度处理,二值化处理,同理。 需要注意的就是效率,随着图像的大小处理效率不同,所以我引入了不安全代码用c++进行处理,第一次采用像素法效率太低,经常卡,后来改为内存法,速度非常快,完全跟的上图像采集的速度。
fansf2008 2014-02-10
  • 打赏
  • 举报
回复
引用 6 楼 lzp_lrp 的回复:
[quote=引用 楼主 fansf2008 的回复:] 最近在做一个东西,就是通过视频采集卡将摄像头采集到的信息显示在winform的窗体中,并且根据捕获的视频的变化,鼠标也要随着winform显示的图像中的物体的移动而移动。现在的视频采集已经完成,可以正常显示出来,但是如何对视频中的数据进行分析判断得出上一贞和下一帧直接差异,并且让鼠标随之移动。比如一个点的移动,鼠标可以跟着点的移动而移动,求大神指点。
这个难度比较大,需要取出一帧一帧的图像,然后对比分析,还牵涉到图像识别,就像3#说的,博士研究级别,建议你去找找有没有现在的软件,花钱买个吧,如果自己做,估计要研究到猴年马月了[/quote]没有那么难,已经实现了。很简单,如果是RGB,获取数据流进行灰度处理,二值化处理,最终图像变味黑白图像,直接查找白色区域的坐标,然后重置鼠标位置,调用API函数,实现左键down and up 操作
WorldMobile 2014-01-21
  • 打赏
  • 举报
回复
引用 楼主 fansf2008 的回复:
最近在做一个东西,就是通过视频采集卡将摄像头采集到的信息显示在winform的窗体中,并且根据捕获的视频的变化,鼠标也要随着winform显示的图像中的物体的移动而移动。现在的视频采集已经完成,可以正常显示出来,但是如何对视频中的数据进行分析判断得出上一贞和下一帧直接差异,并且让鼠标随之移动。比如一个点的移动,鼠标可以跟着点的移动而移动,求大神指点。
这个难度比较大,需要取出一帧一帧的图像,然后对比分析,还牵涉到图像识别,就像3#说的,博士研究级别,建议你去找找有没有现在的软件,花钱买个吧,如果自己做,估计要研究到猴年马月了
公西雒 2014-01-21
  • 打赏
  • 举报
回复
引用 4 楼 fansf2008 的回复:
danding_ge
danding_ge
Afresh-Klo
等级:Blank
#2 得分:0 回复于: 2014-01-21 15:24:15
取图像每个像素点指针,锁住这部分内存,然后对每一帧的图像指针的数据进行比较就行了。

这个貌似可以尝试一下,谢谢啊,我先尝试一下,如果可以可以分享给大家
=。=回复请点击
fansf2008 2014-01-21
  • 打赏
  • 举报
回复
danding_ge danding_ge Afresh-Klo 等级:Blank #2 得分:0 回复于: 2014-01-21 15:24:15 取图像每个像素点指针,锁住这部分内存,然后对每一帧的图像指针的数据进行比较就行了。 这个貌似可以尝试一下,谢谢啊,我先尝试一下,如果可以可以分享给大家
fansf2008 2014-01-21
  • 打赏
  • 举报
回复
要是有变化,必然是很多点变化, 只跟踪一个点,这要求不合理。 另外这个难度太高了,博士研究级别的。 肯定不是我们属于中的一个点,我说的是实际中的点,比如一个物体的移动,或者一个人脸的移动。
公西雒 2014-01-21
  • 打赏
  • 举报
回复
取图像每个像素点指针,锁住这部分内存,然后对每一帧的图像指针的数据进行比较就行了。
rtdb 2014-01-21
  • 打赏
  • 举报
回复
要是有变化,必然是很多点变化, 只跟踪一个点,这要求不合理。 另外这个难度太高了,博士研究级别的

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧