C++ OpenCV 2.3中缺少MoveWindow()

8 投票
1 回答
6025 浏览
提问于 2025-04-16 20:47

我正在使用C++版本的OpenCV 2.3,遇到了一些困难,想做一个基本的任务。我想创建一个窗口,并把它移动到屏幕上的特定位置,比如用下面的代码:

cv::namedWindow("My Window", 1);
cv::MoveWindow("My Window", 10, 10);

但是,似乎没有MoveWindow()这个函数。在OpenCV 2.3的文档中(链接),看起来有C和Python的实现,但没有C++的。这是不是意味着有更好的方法来做到这一点呢?

根据文档的相关部分:

MoveWindow
==========
Moves window to the specified position
--------------------------------------
C: void cvMoveWindow(const char* name, int x, int y)

Python: cv.MoveWindow(name, x, y) → None

Parameters:

- name – Window name
- x – The new x-coordinate of the window
- y – The new y-coordinate of the window

解决方案:在最新版本的OpenCV中,现在有一个 cv::MoveWindow("const string& winname, int x, int y) 函数。参考 这里

1 个回答

11

你应该使用C语言的函数来完成这个任务:

cvMoveWindow(const char* name, int x, int y);

你可以通过下载 OpenCV 2.3 for *nix 来验证这个信息。在 C++ 示例 目录下,也就是 OpenCV-2.3.0/samples/cpp/tutorial_code/Basic/,找一个叫 Drawing_1.cpp 的文件。这个文件使用了C++的接口来处理所有事情,除了移动窗口这件事。

看起来C++的接口没有提供处理这个任务的方法。

撰写回答