1.1 imread函数
- 读取(加载)
对于图像的读取,使用imread()函数
来进行读取,
Mat imread( const String& filename, int flags )
第一个参数 filename: 表示图像的路径。
第二个参数 flags:表示读取图像的方式。
IMREAD_UNCHANGED = -1,读取原图,默认原图读取
IMREAD_GRAYSCALE = 0,以灰度图方式读取
IMREAD_COLOR = 1,以RGB方式读取原图
1.2 imshow函数
imshow通常用来显示图像,函数如下
void imshow(const String& winname, InputArray mat);
//参数1 : winname表示窗口名称
//参数2 : mat表示输入的mat图像
一般来说,imshow可以搭配namedWindow()函数
一起使用
有时候,用imshow打开的图片的大小窗口非常大,是按图片的原始比例显示的,所以namedWindow()可以选择多种方式打开并显示图片
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img=imread("图片路径");
nameWindow("原图",WINDOW_FREERATIO);//窗口大小自适应比例
imshow("原图",img); //这里的字符串 "原图",就是namedWindow所定义的窗口
waitKey(0); //等待时间,如果参数是0,那么一直阻塞,ms为单位
destroyAllWindows() ;//执行到这里时候,对所有的窗口都销毁
}
第二个参数,标志参数,代表要创建的窗口的属性
标志参数 | 作用 |
---|---|
WINDOW_NORMAL | 显示图像后,允许用户随意调整窗口大小 |
WINDOW_AUTOSIZE | 根据图像大小显示窗口,不允许用户调整大小 |
WINDOW_FREERATIO | 窗口大小自适应比例 |
WINDOW_KEEPRATIO | 保持图像的比例 |
1.3 cvtColor函数
图像颜色转换,各种类型之间相互转换函数
void cvtColor(InputArray src,outputArray dst,int code,int dstCn=0);
//第一个参数为输入图像;
//第二个参数为输出图像;
//第三个参数为颜色空间转换的标识符(具体见表);;
//第四个参数为目标图像的通道数,若该参数是0,表示目标图像取源图像的通道数。
1.4 imwrite函数
bool cv::imwrite(const String & filename,InputArray img,const std::vector<int> & params = std::vector<int>() )
参数:
- filename:需要保存图像的文件名,要保存图片为哪种格式,就带什么后缀。
- img:要保存的图像。
- params:表示为特定格式保存的参数编码。
eg:
Mat hsv, gray;
cvtColor(src, hsv, COLOR_BGR2HSV);
cvtColor(src, gray, COLOR_BGR2GRAY);
namedWindow("HSV", WINDOW_NORMAL);
namedWindow("灰度", WINDOW_NORMAL);
imshow("HSV", hsv);
imshow("灰度", gray);
imwrite("D:\C++\opencv_stu\outputImg\hsv.png", hsv);
imwrite("D:\C++\opencv_stu\outputImg\gray.png", gray);