VS2017、OpenCV3.4.1
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char** argv){
Mat img = imread("F:/test/apple.jpg"); // 定义一个Mat(Matrix)容器用于存储图像
if (img.empty()) return -1;
namedWindow("Example1", WINDOW_AUTOSIZE); // WINDOW_FREERATIO可手动调节窗口大小
imshow("Example1", img);
waitKey(0);
destroyAllWindows();
}
imread()为载入图像函数,返回的是Mat结构。OpenCV使用这个结构来处理所有类型的图像:单通道、多通道、整型、浮点数等。
nameWindow()函数新建一个空的窗口,第一个参数为窗口名,第二个参数说明了窗口的特性:WINDOW_AUTOSIZE表示窗口的大小和载入图像的大小一致,WINDOW_FREERATIO生成的窗口可以手动调节。
Mat中拥有的图像结构可以通过imshow()进行显示。只有保持imshow()中第一个名称参数与nameWindow()的窗口名一致,才可以将图片显示在刚刚新建的窗口中,否则将新建两个窗口。
waitKey()告诉系统暂停并等待键盘时间。如果传入了一个大于0的参数,它将会等待等同于该参数的毫秒时间,然后继续执行程序;如果参数被设置为0或复数,程序将会无限等待直到有按键按下。
destroyAllWindows()将会关闭窗口并释放掉相关联的内存。
命名空间:using namespace cv 告诉编译器所有函数都位于cv命名空间下。
显示结果图: