CV_WINDOW_KEEPRATIO似乎不起作用

时间:2015-11-05 12:36:27

标签: c++ opencv

所以我在MinGW的帮助下使用自己编译的OpenCV 3.0。我在Visual Studio 2013 for Windows中编写和构建。 CV_WINDOW_NORMAL| CV_WINDOW_KEEPRATIO namedWindow()的句子似乎不会限制我窗口的重新设置,而且我注意到的是CV_WINDOW_NORMAL=0CV_WINDOW_KEEPRATIO=0。有什么解释吗?

1 个答案:

答案 0 :(得分:0)

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

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

编辑: 摘录自namedWindow-Documentation

  

请注意

     

Qt后端支持其他标志:

     

CV_WINDOW_FREERATIO或CV_WINDOW_KEEPRATIO:CV_WINDOW_FREERATIO   调整图像而不考虑其比例,而   CV_WINDOW_KEEPRATIO保持图像比例。   [...]

请注意QT约束。

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