如何将OpenCV鼠标事件编程成支持长尾词查询的交互式?

2026-04-11 23:351阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计927个文字,预计阅读时间需要4分钟。

如何将OpenCV鼠标事件编程成支持长尾词查询的交互式?

OpenCV支持检测鼠标事件。这是一个非常简单的功能。我们可以检测到特定的鼠标事件和鼠标指针位置(X,Y坐标),这些坐标是基于图像像素的,而非窗口坐标。以下是一个简单的例子,用于检测鼠标左键点击事件:


OpenCV的支持检测鼠标事件。这是非常简单的做到这一点。我们可以检测到特定的鼠标事件和鼠标指针(X,Y)坐标在图像坐标(不是窗口坐标),

下面是一个简单的例子,检测鼠标左键点击事件和它(X,Y)坐标。


#include "stdafx.h" #include <cv.h> #include <highgui.h> //callback function void mouseEvent(int evt, int x, int y, int flags, void* param){ if(evt==CV_EVENT_LBUTTONDOWN){ printf("%d %d\n",x,y); } } int main() { cvNamedWindow("MyWindow"); //assigning the callback function for mouse events cvSetMouseCallback("MyWindow", mouseEvent, 0); //load and display an image IplImage* img = cvLoadImage("C:/MyPic.jpg"); cvShowImage("MyWindow", img); //wait for key press cvWaitKey(0); //cleaning up cvDestroyWindow("MyWindow"); cvReleaseImage(&img); return 0; }



如何将OpenCV鼠标事件编程成支持长尾词查询的交互式?




总结


在此应用中,它在图像窗口中检测到鼠标左键按下打印出(X,Y)坐标。

这里是新的OpenCV的职能 ,在上面的例子。



  • cvSetMouseCallback(“MyWindow命名”,鼠标事件,0)

第一参数是与鼠标事件时,应监测的窗口中的名称。


第二个参数是函数的名称时将调用该鼠标事件发生指定window.This功能的原型如下。


无效的MouseEvent(EVT诠释,诠释,诠释的标志,作废参数)


  • 对于第1个参数,这将是后
  • CV_EVENT_MOUSEMOVE - 当鼠标指针移到指定的窗口
  • CV_EVENT_LBUTTONDOWN -当按下鼠标左键指定窗口
  • CV_EVENT_RBUTTONDOWN -上按下鼠标右键时
  • CV_EVENT_MBUTTONDOWN -鼠标的中间按钮时,按下指定的窗口
  • CV_EVENT_LBUTTONUP -当释 放鼠标左键指定的窗口
  • CV_EVENT_RBUTTONUP -当鼠标右键释放指定的窗口
  • CV_EVENT_MBUTTONUP -鼠标的中间按钮被释放时,在指定的窗口



  • 对于第二和第三参数,这将是,如在上面的图像示出的鼠标指针的位置的x和y坐标。
  • 对于第4个参数,这将是后
  • CV_EVENT_FLAG_LBUTTON -当按下鼠标左键指定的窗口
  • CV_EVENT_FLAG_RBUTTON -当鼠标右键按下指定的窗口
  • CV_EVENT_FLAG_MBUTTON -鼠标的中间按钮时,按下指定的窗口
  • CV_EVENT_FLAG_CTRLKEY - 当按下“Ctrl”键,任何鼠标事件发生时,
  • CV_EVENT_FLAG_SHIFTKEY -'SHIFT'键被按下,任何鼠标事件发生时,
  • CV_EVENT_FLAG_ALTKEY -当按下“ALT”键,任何鼠标事件发生时,



  • 第五个参数是用户定义的参数的第三个参数通过。



更先进的Visual C + +的范例,
这也是类似上面的例子。但是,这是先进一点点。尝试理解上的差异和预测




#include "stdafx.h" #include <cv.h> #include <highgui.h> //callback function void mouseEvent(int evt, int x, int y, int flags, void* param){ if(evt==CV_EVENT_MOUSEMOVE && flags==CV_EVENT_FLAG_CTRLKEY){ printf("%d %d\n",x,y); } } int main() { cvNamedWindow("MyWindow"); //assigning the callback function for mouse events cvSetMouseCallback("MyWindow", mouseEvent, 0); //load and display an image IplImage* img = cvLoadImage("C:/MyPic.jpg"); cvShowImage("MyWindow", img); //wait for key press cvWaitKey(0); //cleaning up cvDestroyWindow("MyWindow"); cvReleaseImage(&img); return 0; }




本文共计927个文字,预计阅读时间需要4分钟。

如何将OpenCV鼠标事件编程成支持长尾词查询的交互式?

OpenCV支持检测鼠标事件。这是一个非常简单的功能。我们可以检测到特定的鼠标事件和鼠标指针位置(X,Y坐标),这些坐标是基于图像像素的,而非窗口坐标。以下是一个简单的例子,用于检测鼠标左键点击事件:


OpenCV的支持检测鼠标事件。这是非常简单的做到这一点。我们可以检测到特定的鼠标事件和鼠标指针(X,Y)坐标在图像坐标(不是窗口坐标),

下面是一个简单的例子,检测鼠标左键点击事件和它(X,Y)坐标。


#include "stdafx.h" #include <cv.h> #include <highgui.h> //callback function void mouseEvent(int evt, int x, int y, int flags, void* param){ if(evt==CV_EVENT_LBUTTONDOWN){ printf("%d %d\n",x,y); } } int main() { cvNamedWindow("MyWindow"); //assigning the callback function for mouse events cvSetMouseCallback("MyWindow", mouseEvent, 0); //load and display an image IplImage* img = cvLoadImage("C:/MyPic.jpg"); cvShowImage("MyWindow", img); //wait for key press cvWaitKey(0); //cleaning up cvDestroyWindow("MyWindow"); cvReleaseImage(&img); return 0; }



如何将OpenCV鼠标事件编程成支持长尾词查询的交互式?




总结


在此应用中,它在图像窗口中检测到鼠标左键按下打印出(X,Y)坐标。

这里是新的OpenCV的职能 ,在上面的例子。



  • cvSetMouseCallback(“MyWindow命名”,鼠标事件,0)

第一参数是与鼠标事件时,应监测的窗口中的名称。


第二个参数是函数的名称时将调用该鼠标事件发生指定window.This功能的原型如下。


无效的MouseEvent(EVT诠释,诠释,诠释的标志,作废参数)


  • 对于第1个参数,这将是后
  • CV_EVENT_MOUSEMOVE - 当鼠标指针移到指定的窗口
  • CV_EVENT_LBUTTONDOWN -当按下鼠标左键指定窗口
  • CV_EVENT_RBUTTONDOWN -上按下鼠标右键时
  • CV_EVENT_MBUTTONDOWN -鼠标的中间按钮时,按下指定的窗口
  • CV_EVENT_LBUTTONUP -当释 放鼠标左键指定的窗口
  • CV_EVENT_RBUTTONUP -当鼠标右键释放指定的窗口
  • CV_EVENT_MBUTTONUP -鼠标的中间按钮被释放时,在指定的窗口



  • 对于第二和第三参数,这将是,如在上面的图像示出的鼠标指针的位置的x和y坐标。
  • 对于第4个参数,这将是后
  • CV_EVENT_FLAG_LBUTTON -当按下鼠标左键指定的窗口
  • CV_EVENT_FLAG_RBUTTON -当鼠标右键按下指定的窗口
  • CV_EVENT_FLAG_MBUTTON -鼠标的中间按钮时,按下指定的窗口
  • CV_EVENT_FLAG_CTRLKEY - 当按下“Ctrl”键,任何鼠标事件发生时,
  • CV_EVENT_FLAG_SHIFTKEY -'SHIFT'键被按下,任何鼠标事件发生时,
  • CV_EVENT_FLAG_ALTKEY -当按下“ALT”键,任何鼠标事件发生时,



  • 第五个参数是用户定义的参数的第三个参数通过。



更先进的Visual C + +的范例,
这也是类似上面的例子。但是,这是先进一点点。尝试理解上的差异和预测




#include "stdafx.h" #include <cv.h> #include <highgui.h> //callback function void mouseEvent(int evt, int x, int y, int flags, void* param){ if(evt==CV_EVENT_MOUSEMOVE && flags==CV_EVENT_FLAG_CTRLKEY){ printf("%d %d\n",x,y); } } int main() { cvNamedWindow("MyWindow"); //assigning the callback function for mouse events cvSetMouseCallback("MyWindow", mouseEvent, 0); //load and display an image IplImage* img = cvLoadImage("C:/MyPic.jpg"); cvShowImage("MyWindow", img); //wait for key press cvWaitKey(0); //cleaning up cvDestroyWindow("MyWindow"); cvReleaseImage(&img); return 0; }