Events C+中的自定义事件/中断处理+;

Events C+中的自定义事件/中断处理+;,events,opencv,user-interface,Events,Opencv,User Interface,微控制器/嵌入式系统中是否存在与低级中断等效的通用编程 我对事件(鼠标事件等)的概念略知一二,这似乎很相似,但不够笼统。 在C/C++中,是否有一种机制(本机或其他)来处理自定义事件,也就是说,当鼠标指针在特定用户操作发生时移动到特定区域时,其触发由用户定义的条件决定的事件 为了提供一些上下文,我正在进行一个基于OpenCV的交互式项目,在这个项目中,当用户指向屏幕上的特定位置时,我希望触发特定的操作 在视频流的每次迭代中,检查指针当前是否位于屏幕上的某某位置似乎是一种特殊的计算浪费,我想根据预

微控制器/嵌入式系统中是否存在与低级中断等效的通用编程

我对事件(鼠标事件等)的概念略知一二,这似乎很相似,但不够笼统。 在C/C++中,是否有一种机制(本机或其他)来处理自定义事件,也就是说,当鼠标指针在特定用户操作发生时移动到特定区域时,其触发由用户定义的条件决定的事件

为了提供一些上下文,我正在进行一个基于OpenCV的交互式项目,在这个项目中,当用户指向屏幕上的特定位置时,我希望触发特定的操作

在视频流的每次迭代中,检查指针当前是否位于屏幕上的某某位置似乎是一种特殊的计算浪费,我想根据预定义的条件自动执行函数调用

或者是否有其他(更有效的)机制可以改进此程序

谢谢

  • C/C++中没有像microP或microC中那样的中断编程
  • 如果您的屏幕是触摸屏,那么您尝试获取操作系统的SDK或操作系统的API,以便在触摸发生时获得通知。(操作系统内部维护一个中断表,用于触摸、键盘按下或鼠标移动。我们可以对此类事件执行的逻辑进行编程,仅此而已。)
  • 如果它不是触摸式的,那么你必须用一个传感器,通常是一个摄像头(一个网络摄像头)来监控用户的位置。为此,您必须检查相机的每一帧,以确定用户的位置。 编辑:
  • 你提到的是正确的方法。最好检查每一帧,否则你的系统会反应迟钝。您可以将计数器指定为1,并随每帧增加计数器,并在达到任何所需值时重置计数器。这几乎相当于一个无限循环
  • 或者您可以接受键盘上的一些键来打破循环(OpenCV有这样的功能)
  • 一种更高级的方法是在与执行程序的主线程不同的线程中从相机获取帧。所以你需要做的就是启动和停止线程
  • C/C++中没有像microP或microC中那样的中断编程
  • 如果您的屏幕是触摸屏,那么您尝试获取操作系统的SDK或操作系统的API,以便在触摸发生时获得通知。(操作系统内部维护一个中断表,用于触摸、键盘按下或鼠标移动。我们可以对此类事件执行的逻辑进行编程,仅此而已。)
  • 如果它不是触摸式的,那么你必须用一个传感器,通常是一个摄像头(一个网络摄像头)来监控用户的位置。为此,您必须检查相机的每一帧,以确定用户的位置。 编辑:
  • 你提到的是正确的方法。最好检查每一帧,否则你的系统会反应迟钝。您可以将计数器指定为1,并随每帧增加计数器,并在达到任何所需值时重置计数器。这几乎相当于一个无限循环
  • 或者您可以接受键盘上的一些键来打破循环(OpenCV有这样的功能)
  • 一种更高级的方法是在与执行程序的主线程不同的线程中从相机获取帧。所以你需要做的就是启动和停止线程

  • 我正在为桌面编程,因此(2)不适用。所以,我必须在所有条件下对每一帧进行轮询?或者有没有其他方法可以减少每帧的检查次数?如果你使用相机,那么理想情况下你必须…但是,因为相机是20-30 fps,所以你每50-30 ms对手的运动进行一次采样。一般来说,人的手不会移动得太快…所以你可以每500毫秒或每秒采样一次…所以在间隔20到30毫秒后进行检查15帧…在一个相关的主题中,您如何监控经过的帧数?我的意思是,如果你以相当快的速率采样,在某个点上,保存帧数的变量会溢出,需要重置。这是常规程序还是有更好的解决办法?我是新来的,所以请原谅我知识的缺乏。哈哈…每个人在某个时候都是新来的…所以不要原谅我的东西…检查我答案的编辑…我正在为桌面编程,所以(2)不适用。所以,我必须在所有条件下对每一帧进行轮询?或者有没有其他方法可以减少每帧的检查次数?如果你使用相机,那么理想情况下你必须…但是,因为相机是20-30 fps,所以你每50-30 ms对手的运动进行一次采样。一般来说,人的手不会移动得太快…所以你可以每500毫秒或每秒采样一次…所以在间隔20到30毫秒后进行检查15帧…在一个相关的主题中,您如何监控经过的帧数?我的意思是,如果你以相当快的速率采样,在某个点上,保存帧数的变量会溢出,需要重置。这是常规程序还是有更好的解决办法?我是新来的,所以请原谅我知识的缺乏。哈哈…每个人在某个时候都是新来的…所以不要原谅我的东西…检查我答案的编辑。。