- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
将窗口移动到指定的位置。
cv::moveWindow() 函数用于更改指定窗口的位置。你可以使用这个函数来移动窗口到屏幕上的任何位置。
函数原型
cpp
void cv::moveWindow
(
const String & winname,
int x,
int y
)
参数
- 参数winname 窗口的名称。
- 参数x 窗口的新 X 坐标。
- 参数y 窗口的新 Y 坐标。
代码示例
cpp
#include <iostream>
#include <opencv2/opencv.hpp>
int main()
{
// 加载图像
cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/hawk.jpg", cv::IMREAD_COLOR );
if ( img.empty() )
{
std::cerr << "Error: Image not found!" << std::endl;
return -1;
}
// 创建窗口
std::string winname = "Example Window";
cv::namedWindow( winname, cv::WINDOW_NORMAL ); // 设置窗口大小可变
// 初始位置
int x = 100;
int y = 100;
// 显示图像
cv::imshow( winname, img );
// 使用键盘事件移动窗口
while ( true )
{
int key = cv::waitKey( 10 ); // 等待 10 毫秒
if ( key == 27 )
{ // 按下 ESC 键退出
break;
}
else if ( key == 'a' )
{ // 向左移动
x -= 10;
}
else if ( key == 'd' )
{ // 向右移动
x += 10;
}
else if ( key == 'w' )
{ // 向上移动
y -= 10;
}
else if ( key == 's' )
{ // 向下移动
y += 10;
}
// 更新窗口位置
cv::moveWindow( winname, x, y );
}
// 关闭所有窗口
cv::destroyAllWindows();
return 0;
}
运行结果
动态效果,静态图看不出效果,你可以按a键、s键、w键、d键来体验下窗口移动的感觉。