-
imread()
函数- 返回值,Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL)
- 参数1 filename, 读取的图片文件名,可以使用相对路径或者绝对路径,但必须带完整的文件扩展名(图片格式后缀)
- 参数2 flags, 一个读取标记,用于选择读取图片的方式,默认值为IMREAD_COLOR,flag值的设定与用什么颜色格式读取图片有关,以下是支持常见的三个参数值
——IMREAD_UNCHANGED
(<0)表示加载原图,不做任何改变
——IMREAD_GRAYSCALE
(0)表示吧原图作为灰度图像加载进来
——IMREAD_COLOR
(>0)表示把原图作为RGB图像加载进来
-
namedWindow()
函数创建一个OpenCV窗口,它是由OpenCV自动创建与释放。第二个参数:
WINDOW_AUTOSIZE
:如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小.WINDOW_NORMAL
:跟QT集成的时候会使用,允许修改窗口大小。
-
waitKey()
函数的功能是不断刷新图像,频率为delay,单位是ms,返回值为当前键盘按下的值,没有按键时返回-1。 -
使用
imshow()
函数显示图片,第一个参数是窗口名称,第二参数是Mat
对象。如果这个窗口不存在,它会自动调用namedWindow()
新建一个窗口。 -
destroyWindow()
函数将会关闭窗口并且释放掉相关联的内存空间。
#include<opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv) {
Mat img = cv::imread(argv[1], -1); // 命令行参数法
if (img.empty()) { // 检测这个图像是否真的被载入了
return -1;
}
namedWindow("原图", cv::WINDOW_AUTOSIZE);
imshow("原图", img);
waitKey(0);
destroyWindow("原图");
return 0;
}
命令行参数法是源码中比较常见的。
设置方法是:
【工程】→【属性】→【配置属性】→【调试】→【命令行参数】,然后设置要打开图片的名称。如图: