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