Mat*_*teo 3 opencv window mouseevent
OpenCV 2.2版,C++接口.
在带有以下代码段的窗口中显示加载的图像时
cvStartWindowThread();
Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file
if(! image.data ) // Check for invalid input
{
cout << "Could not open or find the image" << std::endl ;
return -1;
}
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", image );
while( 1 ) {
if( cvWaitKey(100) == 27 ) break;
}
Run Code Online (Sandbox Code Playgroud)
通过close button用鼠标按下而不是使用转义键来关闭图像时遇到问题.
在这种情况下,我的程序将被阻止,while退出它的唯一方法是停止执行,这显然是不希望的.
是否有任何功能可以控制是否close button按下了?这样我就可以在while循环中添加它:
例如
while( 1 ) {
if( cvWaitKey(100) == 27 ) break;
if( cvCloseButtonPressed == 1) break; <--- purely invented method I'm looking for...
}
Run Code Online (Sandbox Code Playgroud)
yuy*_*ppe 10
您可以使用cvGetWindowHandle()函数来处理命名窗口.窗口句柄是特定于操作系统的功能.win32的示例如下所示:
HWND hwnd = (HWND)cvGetWindowHandle("Display window");
while(IsWindowVisible(hwnd)) {
if( cvWaitKey(100) == 27 ) break;
}
Run Code Online (Sandbox Code Playgroud)
IsWindowVisible()是一个winapi函数,所以你可能想要添加 #include <windows.h>
| 归档时间: |
|
| 查看次数: |
8060 次 |
| 最近记录: |