图像加载与显示
图像的加载
-
imread()
Mat cv::imread(const string& filename, int flag = IMREAD_COLOR)
-
filename: 需要读取图像的文件名称,包含图像地址,名称和图像文件扩展名
-
flags: 读取图像的形式标志(默认使用
IMREAD_COLOR
彩色形式)
-
图像的显示
-
nemedWindow()
void cv::namedWindow(const string& winname, int flag = WINDOW_AUTOSIZE)
-
winname: 窗口名称
-
flags: 窗口属性标志(默认
WINDOW_AUTOSIZE
)
-
-
imshow()
void cv::imshow(const string& winname, InputArray mat)
-
winname: 要显示图像窗口的名字,用字符串形式赋值。
-
mat: 要显示的图像矩阵
部分版本OpenCV使用nameWindow创建窗口需要手动释放。
-
图像的保存
-
imwrite()
bool cv::imwrite(const string& filename, InputArry img, const std::vector<int> ¶ms = std::vector<int>())
- filename: 保存图像的地址和文件名,包含图像格式
- img: 将要保存的mat类变量
- params: 保存图片格式属性设置标志<是否压缩>
代码展示
#include <opencv2/opencv.hpp>
#include <vector>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img;
// 彩色
img = imread("./lena.png");
// 灰色
Mat gray = imread("./lena.png", IMREAD_GRAYSCALE);
// 自适应窗口 彩色
namedWindow("img", WINDOW_AUTOSIZE);
// 可拖动 灰色
namedWindow("gray", WINDOW_NORMAL);
// 一闪而过
imshow("img", img);
imshow("gray", gray);
vector<int> compression_params;
// PNG 压缩格式
compression_params.push_back(IMWRITE_PNG_COMPRESSION);
// 压缩等级 9
compression_params.push_back(9);
// imwrite("./newlenna.png", img, compression_params);
// 默认压缩
imwrite("./newlenna.png", img, compression_params);
// 等待键盘输入
waitKey(0);
}