Opencv载入图片并显示的问题

来源:互联网 发布:ftp 自定义端口 编辑:程序博客网 时间:2024/06/04 19:06


本文为原创作品,转载请注明出处

欢迎关注我的博客:http://blog.csdn.net/hit2015springhttp://www.cnblogs.com/xujianqing/

 

美女图片一张,测试加欣赏,一举两得!


 

 

                          

问题:opencv显示图片的过程中,如果图片特别大,比屏幕分辨率还要大的话,那么在显示图像的时候就有可能出现一种情况,图片占满屏幕,或者图片只显示一部分,不能全部显示出来。如下图:

前后两张图片做一下对比,发现opencv显示的图片,美女的前面一块地少了一块,不能把整张图片显示完全。

 

解决方法:Opencv提供了一个可以调整显示窗口的函数,该函数可以对图像所要显示的窗口进行缩放,也就是自动调整显示的窗口值,使图像可以完整地显示出来。

1、函数原型:cvNamedWindow(constchar*name,

intflagsCV_DEFAULT(CV_WINDOW_AUTOSIZE))

功能:定义显示图像的界面窗口

参数:

Name:窗口的名称

Flags:该参数默认值为CV_WINDOW_AUTOSIZE=1使用默认值,图像会显示原始图像的大小,于是就会出现上述的显示不完全,或者占满屏的现象,于是需要调整显示窗口的大小,对图像进行缩放,此时该参数就不能设置成为1.

2、函数原型:cvResizeWindow(constchar*name,

intwidth,

intheight);

功能:调整显示窗口大小

参数:

Name:定义要调整的窗口名称

Width:重新定义窗口的宽度

Height:定义窗口的高度

 

代码:

#include<iostream>  #include <opencv2/core/core.hpp>  #include <opencv2/highgui/highgui.hpp>  #define TestWindow "测试图窗口"using namespace cv;int main(){// 读入一张图片(测试图)  Mat img = imread("测试图.jpg", 1);// 创建一个名为 "测试图窗口"窗口  cvNamedWindow(TestWindow, 0);//对该窗口进行大小重新定义cvResizeWindow(TestWindow, 500, 500);// 在窗口中显示测试图  imshow(TestWindow, img);//waitKey(0);}
结果显示如下图:

 

如上图所示,美女的图片整张全部完全显示在屏幕上。完成!

0 0
原创粉丝点击