本文所需资源:链接:https://pan.baidu.com/s/1KhVOe_J25R_fmfXLldaQjA?pwd=1024
提取码:1024
本系列文章为本人初学Opencv的学习随笔,若有疏漏,还望海涵。
本系列文章无任何商业用途,仅供学习。
一、图像的读取、显示和保存
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat image; //创建一个空图像image
image = imread("D://lena.png", IMREAD_COLOR); //读取文件夹中的图像 此处IMREAD_COLOR为加载彩色影像,默认可不写。
//检测图像是否加载成功
if (image.empty()) //检测image有无数据,无数据 image.empty()返回 真
{
cout << "Could not open or find the image" << endl;
return -1;
}
namedWindow("输入的图片", WINDOW_NORMAL); //创建显示窗口,不加这行代码,也能显示,只不过窗口大小不能改变,这里的WINDOW_NORMAL参数使得我们可以随意调节窗口大小
imshow("输入的图片", image); //在窗口显示图像
imwrite("1.png", image); //保存图像为png格式,文件名称为1
waitKey(0); //暂停,保持图像显示,等待按键结束
return 0;
}
上述代码结果如上图。
此处需注意若
namedWindow和imshow中的名称不一致,会导致出现如下情况:
外层的IMAGE窗口可以自由缩放,然而lena这张图是默认的不可缩放模式。
函数介绍:
1.1 imread函数
使用imread()读取图像,imread包含两个参数:
imread(图像路径, 图像形式);
其中图像形式有三种:
1.加载彩色图像(默认加载形式)
imread(图像路径, IMREAD_COLOR);
或者:
imread(图像路径, 1);
2.加载灰度模式图像
imread(图像路径, IMREAD_GRAYSCALE);
或者:
imread(图像路径, 0);
3.加载图像,包括alpha通道
imread(图像路径,IMREAD_UNCHANGED);
或者:
imread(图像路径, -1);
1.2 namedWindow函数
功能:namedWindow() 的功能就是新建一个显示窗口,用来显示图像。
namedWindow() 包含两个参数:
namedWindow(窗口名称, 窗口形式)
窗口形式常用的两种:
1.显示的图像大小不能改变(默认形式)
namedWindow(窗口名称, WINDOW_AUTOSIZE)
2.图像大小能够调节
namedWindow(窗口名称, WINDOW_NORMAL)
1.3 imshow函数
功能:imshow函数用于显示图像。
imshow() 函数包含两个参数:
imshow(窗口名称,图像名称)
1.4 imwrite函数
功能:imwrite函数用于显示图像。
imwrite() 函数包含两个参数:
imwrite(保存图像名称及格式,图像名称)