OpenCV 和 namedWindow 的窗口大小不一致

Posted

技术标签:

【中文标题】OpenCV 和 namedWindow 的窗口大小不一致【英文标题】:Inconsistent window size with OpenCV and namedWindow 【发布时间】:2015-07-09 09:16:52 【问题描述】:

此代码 sn-p 在 Windows 7 上使用 OpenCV 3.0 和 Visual Studio 2013:

Mat rgb = imread("test.jpeg");
Mat channel[3];

split(rgb, channel);

namedWindow("Red", WINDOW_NORMAL);
namedWindow("Green", WINDOW_NORMAL);
namedWindow("Blue", WINDOW_NORMAL);
namedWindow("RGB", WINDOW_NORMAL); 

imshow("Blue", channel[0]);
imshow("Green", channel[1]);
imshow("Red", channel[2]);
imshow("RGB", rgb);   

waitKey(0); 

显示名为 BlueGreenRed 的全屏窗口,但 RGB 窗口只有四分之一屏幕大小.它们不应该都一样大吗?

【问题讨论】:

您之前可能有一个带有名为“RGB”的窗口的程序。 (大小存储在注册表中)。只需将 RGB 窗口大小调整为全屏,关闭并重新启动程序。 @berak 你是对的。我使用 WINDOW_AUTOSIZE 而不是 WINDOW_NORMAL 运行此代码一次,它更新了注册表设置,因此它现在可以按预期工作。发表您的评论作为答案怎么样? 【参考方案1】:

您之前可能有一个带有名为“RGB”的窗口的程序。 (大小存储在注册表中)。只需将 RGB 窗口的大小调整为全屏,关闭并重新启动程序。

【讨论】:

以上是关于OpenCV 和 namedWindow 的窗口大小不一致的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV:在imshow() 之前使用namedWindow() 的必要性讨论?

关于opencv的cv2.WINDOW_一类

opencv 图片读取和视频读取

Opencv '未定义的对 `cv::namedWindow....' 的引用(链接错误)

在opencv中的imshow函数后插入延迟

namedWindow() 导致 opencv 2.3.1 崩溃? (在 XP、C++ 上的 Eclipse+MinGW)