所以我在MinGW的帮助下使用自己编译的OpenCV 3.0。我在Visual Studio 2013 for Windows中编写和构建。 CV_WINDOW_NORMAL| CV_WINDOW_KEEPRATIO
namedWindow()
的句子似乎不会限制我窗口的重新设置,而且我注意到的是CV_WINDOW_NORMAL=0
,CV_WINDOW_KEEPRATIO=0
。有什么解释吗?
答案 0 :(得分:0)
据我记得,该参数不适用于窗口本身,而是适用于窗口的内容图像。
这意味着您仍然可以自由调整窗口大小,但显示的图像会保持其比例,并被黑色(或任何颜色的)条形所包围,而不是按比例拉伸。
编辑: 摘录自namedWindow-Documentation
请注意
Qt后端支持其他标志:
CV_WINDOW_FREERATIO或CV_WINDOW_KEEPRATIO:CV_WINDOW_FREERATIO 调整图像而不考虑其比例,而 CV_WINDOW_KEEPRATIO保持图像比例。 [...]
请注意QT约束。
关于标志定义的第二个问题: 我认为两者都是零的原因是,因为存在多组排斥选项。 (正常窗口< - >固定大小窗口;自由可伸缩性< - >比率保持可伸缩性)。对于每个选项,你没有自己的位,因为。所以默认只是一个anuset位。为其定义的原因只是更好的可读性和代码理解。