一起学习opencv(1)显示一个图片
opencv提供了一些实用工具来读取从视频流到摄像机画面的各种各样的图像格式,这些工具都是HighGUI的一部分。我们用其中的一部分实现将一张图片载入到屏幕上。
所以欢迎来到opencv的世界,让我们一起“helloworld”好了。
//#include <opencv2\opencv.hpp>//也可以使用通用的头
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
int main(int argc, char **argv)
{
Mat img = imread("C:/...", -1)//载入图片
if (img.empty())//判断图像是否真的被载入
{
return -1;
}
namedWindow("helloworld", WINDOW_AUTOSIZE);//设定窗口
imshow("helloworld", img);//在窗口显示
waitKey(0);//等待键盘事件
destroyWindow("helloworld");//销毁窗口
return 0;
}
imread(“C:/…”, -1)函数
第一个参数根据文件名自动处理文件的格式;第二个参数,如果flag>0,该函数返回 3 通道图像,如果磁盘上的图像文件是单通道的灰度图像,则会被强制转为 3 通道。 如果flag=0,该函数返回单通道图像,如果磁盘的图像文件是多通道图像,则会被强制转为单通道。如果 flag<0,则函数不对图像进行通道转换。
namedWindow(“helloworld”, WINDOW_AUTOSIZE);
名称赋予窗口(由HighGUI模块提供),窗口交互由名称决定,第二个参数说明了Windows的特性(默认为0)。
imshow(“helloworld”, img)
imshow根据窗口名称,将一个窗口绘制为img的内容(如果窗口不存在,他还自动调用namedWindow(),则新建一个窗口)。
waitKey(0);
函数告诉系统暂停并且等待键盘事件。如果其传入一个大于零的值,它就会等待该值的ms数,然后继续执行程序。如果值被设置为0或者负数则无限等待直到有按键的事件。
destroyWindow(“helloworld”)
自行销毁窗口。
运行结果: