opencv里可以调整大小的画图窗口: imshow, namedwindow

如果能鼠标拖动改变窗口大小在调试程序时候会方便很多啊~

opencv 画图可以 直接

cv::imshow("camera", frame);

会创建一个命名为“camera”的窗口。 但是默认的创建窗口的namedWindow参数为WINDOW_AUTOSIZE。窗口大小会自动调整以适应所显示的图像,但是不能更改大小。

创建窗口时候改变下参数就可以鼠标随意拖动窗口改变大小啦~

cv::namedWindow("camera", CV_WINDOW_NORMAL);
cv::imshow("camera", frame);

还有其他的参数下下文:

-------------

namedWindow函数的作用是,通过指定的名字,创建一个可以作为图像和进度条的容器窗口。如果具有相同名称的窗口已经存在,则函数不做任何事情。

void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );  

第一个参数,const string&型的name,即填被用作窗口的标识符的窗口名称。

第二个参数,int 类型的flags ,窗口的标识,可以填如下的值:

WINDOW_NORMAL设置了这个值,用户便可以改变窗口的大小(没有限制)

INDOW_AUTOSIZE如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小.

WINDOW_OPENGL 如果设置了这个值的话,窗口创建的时候便会支持OpenGL


还有 Qt backend supports additional flags:

  • CV_WINDOW_NORMAL or CV_WINDOW_AUTOSIZE:CV_WINDOW_NORMAL enables you to resize the window, whereasCV_WINDOW_AUTOSIZE adjusts automatically the window size to fit the displayed image (seeimshow() ), and you cannot change the window size manually.  可以改变窗口大小 vs 自适应不能改变窗口大小。
  • CV_WINDOW_FREERATIO or CV_WINDOW_KEEPRATIO:CV_WINDOW_FREERATIO adjusts the image with no respect to its ratio, whereasCV_WINDOW_KEEPRATIO keeps the image ratio. 调整图像不管比例 vs 保持原图比例。
  • CV_GUI_NORMAL or CV_GUI_EXPANDED:CV_GUI_NORMAL is the old way to draw the window without statusbar and toolbar, whereasCV_GUI_EXPANDED is a new enhanced GUI.  无状态栏和工具栏的普通版GUI 和 增强版GUI
默认的flags==CV_WINDOW_AUTOSIZE| CV_WINDOW_KEEPRATIO| CV_GUI_EXPANDED


你可能感兴趣的:(opencv)