opencv中如何修改显示窗口的大小,用C++实现
时间: 2024-05-11 16:19:48 浏览: 342
在 OpenCV 中,可以使用 `cv::namedWindow` 函数来创建一个窗口,并使用 `cv::imshow` 函数来显示图像。
要修改窗口的大小,可以使用 `cv::resizeWindow` 函数。该函数接受两个参数:窗口的名称和新的窗口大小。
下面是一个示例代码,它创建一个名为 "MyWindow" 的窗口,加载一张图像并将其显示在窗口中。然后,使用 `cv::resizeWindow` 函数将窗口的大小设置为 800x600。
```cpp
#include <opencv2/opencv.hpp>
int main()
{
// 创建一个名为 "MyWindow" 的窗口
cv::namedWindow("MyWindow");
// 加载图像
cv::Mat image = cv::imread("test.jpg");
// 将图像显示在窗口中
cv::imshow("MyWindow", image);
// 设置窗口的大小为 800x600
cv::resizeWindow("MyWindow", 800, 600);
// 等待用户按下任意键
cv::waitKey(0);
return 0;
}
```
在上面的代码中,`cv::waitKey(0)` 函数用于等待用户按下任意键。当用户按下键盘上的任意键时,程序将继续执行并退出。
相关问题
opencv imshow 显示窗口大小
在 OpenCV 中使用 `cv::imshow()` 函数来显示图像时,默认情况下,窗口的大小是根据图片大小自动调整的。如果你想手动设置窗口大小,可以使用 `cv::namedWindow()` 函数来创建窗口并设置其大小,然后使用 `cv::imshow()` 函数来显示图像。
以下是一个示例代码,展示了如何创建一个名为 “Display window” 的窗口,并将其大小设置为 640x480 像素:
```c++
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat image = cv::imread("image.jpg");
cv::namedWindow("Display window", cv::WINDOW_NORMAL);
cv::resizeWindow("Display window", 640, 480);
cv::imshow("Display window", image);
cv::waitKey(0);
return 0;
}
```
在上面的代码中,`cv::namedWindow()` 函数创建了一个名为 “Display window” 的窗口,并将其大小设置为 640x480 像素。然后,`cv::imshow()` 函数在这个窗口中显示了一张图片。最后,`cv::waitKey()` 函数等待用户按下任意键,以便关闭窗口。
c++opencv imshow窗口大小可调
在 OpenCV(版本 4.x及以上)中,`imshow` 函数用于显示图像到预设的窗口,但默认情况下,窗口大小是固定的。然而,你可以使用 `cv::namedWindow` 和 `cv::resizeWindow` 函数来调整窗口的大小。这里是如何操作的:
1. 首先,创建一个窗口:
```cpp
cv::namedWindow("My Image", cv::WINDOW_NORMAL); // 或者用 cv::WINDOW_AUTOSIZE 弹出一个自适应大小的窗口
```
`WINDOW_NORMAL` 表示窗口大小可调,而 `WINDOW_AUTOSIZE` 则会根据图像内容自动调整窗口大小。
2. 显示图像时,如果想调整窗口大小,可以在之后调用 `resizeWindow`:
```cpp
cv::imshow("My Image", image);
cv::resizeWindow("My Image", width, height); // 设置特定的宽度和高度
```
3. 如果你想在程序运行期间让窗口随图像大小动态调整,可以在每次显示图像时自动调整窗口:
```cpp
cv::imshow("My Image", image);
cv::setWindowProperty("My Image", cv::WND_PROP_SIZE, cv::Size(width, height)); // 使用 Size 对象指定新尺寸
```
阅读全文