对 OpenCV 还很陌生,所以请耐心等待:
我需要打开一个临时窗口以供用户输入,但我需要确定它不会覆盖以前打开的窗口。
有没有办法打开匿名窗口,或者以某种方式创建有保证的唯一窗口名称?
显然,长随机字符串是非常安全的,但这似乎是一种黑客行为。
附注我目前正在使用 python 绑定(bind),但如果您想用 c/c++ 编写响应也没关系,我对它们很熟悉。
最佳答案
在 modules/highgui/src/window_w32.cpp
中(或者在其他文件中,如果您不使用 Windows,请查看 void cv::namedWindow( const string& winname, int flags )
in ...src/window.cpp
) 有一个函数 static CvWindow* icvFindWindowByName( const char* name )
这可能就是您所需要的,但它是内部的,因此 OpenCV 的作者出于某种原因不希望其他人使用它(或者不知道有人可能需要它)。
我认为最好的选择是使用系统API来查找是否存在具有特定名称的窗口。
最终使用几乎不可能成为窗口名称的东西,例如以毫秒为单位的当前时间+用户名+随机数+随机字符串(是的,我知道窗口名称“234564312cyriel123234123dgbdfbddfgb#$%grw$”并不漂亮)。
关于python - OpenCV 匿名/保证唯一窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035161/