一、imread
1.加载文件图像成为一个 Mat 对象,nameWindow 功能是创建一个OpenCV窗口;
(存在一个和QT结合的修改窗口大小的宏 CV_WINDOW_NORMAL);
2.第一个参数是图像文件名称(路径),第二个参数参数表示加载的图像是什么类型(以下三个宏);
无参就是>1;
宏:
IMREAD_UNCHANGED(<0) ,表示加载原图,不做改变;
IMREAD_GRAYSCALE(0), 表示把原图作为灰度图加载进来;
IMREAD_COLOR(>0), 表示把原图作为RGB图像加载进来;
#include "pch.h"
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
Mat mat = imread("C://Users//Desktop//1.jpg",CV_IMREAD_GRAYSCALE);
if (mat.empty())
{
cout << "没有找到图片!" << endl;
return -1;
}
namedWindow("img",WINDOW_AUTOSIZE);//窗口大小自适应
imshow("img", mat);
waitKey(0);
return 0;
}
二、imshow
1.根据窗口名称显示图像到指定的窗口上,第一个参数是窗口名称,第二个参数是Mat对象;
三、cvtColor
1.把图像从一个彩色空间转换到另外一个彩色空间,有三个参数,第一个参数表示源图像,第二参数表示色彩空间转换之后的图像,第三参数表示源和目标色彩空间,如:COLOR_BGR2HLS,COLOR_BGR2GRAY等;以下代码接上一段代码return前,因为已经显示为灰度图,选用CV_BGR2GRAY会导致debug error;
namedWindow("img",CV_WINDOW_AUTOSIZE);
Mat output;
cvtColor(mat, output, CV_BGR2GRAY);//RGB转灰度图
imshow("img", output);
四、imwrite
1.保存图像,保存图像到指定目录路径;
2.只有8位、16位的 PNG/JPG/TIFF 文件格式并且是单通道或者三通道的RGB图像才可以通过这种方式保存;
3.保存PNG格式的图片时可以保存透明通道的图片;
4.可以指定压缩参数;
imwrite("image.png",output); // 路径 和 mat 对象