2015-11-05 195 views
0

因此,我使用由MinGW帮助自己编译的OpenCV 3.0。我编写并构建在Windows的Visual Studio 2013中。而CV_WINDOW_NORMAL| CV_WINDOW_KEEPRATIO作为namedWindow()的行为似乎并没有限制我的窗口的resizin,我注意到的是CV_WINDOW_NORMAL=0,CV_WINDOW_KEEPRATIO=0。任何解释?CV_WINDOW_KEEPRATIO似乎不起作用

回答

0

据我记得,该参数不适用于窗口本身,而是适用于窗口的内容图像。

这意味着您仍然可以自由调整窗口大小,但显示的图像保持其比率,并被黑色(或任何颜色)条围绕,而不是按比例拉伸。

编辑:从namedWindow-Documentation

注 摘录

Qt的后端支持附加标志:

CV_WINDOW_FREERATIO或CV_WINDOW_KEEPRATIO:CV_WINDOW_FREERATIO 没有关于其比率调整图像,而 CV_WINDOW_KEEPRATIO保持图像比例。 [...]

请注意QT约束。

关于标志定义的第二个问题: 我认为两者都为零的原因是,因为存在多组排斥选项。 (正常窗口< - >固定大小的窗口;免费可扩展性< - >比率保持可扩展性)。对于每个选项你都没有自己的看法,因为。所以默认只是一个简单的位。为其定义的原因仅仅是更好的可读性和代码理解。

+0

情况并非如此 – Ilia

+0

@Ilia它是 - 请参阅链接并注意措词上的差异。有些标志与'窗口'有关,有些标志与'图像'有关 –

+0

我看你没有得到我在说什么,所以继承人为你的gif http://vk.com/doc13632015_437004532 – Ilia