C++ OpenCV #002 图像的读取,显示,保存
1. 函数原型
-
读取图像:
imread(filename, int flags=1)filename:文件路径
int flags:值为1(IMREAD_COLOR)时,读取为彩色图;值为0(IMREAD_GRAYSCALE)时,读取为灰度图;默认值为1
-
窗口设置:
nameWindow(winname, int flags = WINDOW_AUTOSIZE)winname:窗口名称
int flags:窗口的标识,默认为 WINDOW_AUTOSIZE
WINDOW_NORMAL: 显示图像后,允许用户随意调整窗口大小 WINDOW_AUTOSIZE: 根据图像大小显示窗口,不允许用户调整大小 WINDOW_FREERATIO: 窗口大小自适应比例 WINDOW_KEEPRATIO: 保持图像的比例 -
注意:C++中imread方法读取RGB图像时,解码后的图像将以B G R的顺序存储通道。
2. 示例
#include<opencv2/opencv.hpp>
#include<iostream>
#include<string>
using namespace std;
using namespace cv;
int main() {
// 读取为灰度图
Mat src = imread("F:\\test\\1.jpg",IMREAD_GRAYSCALE);
// 创建窗口,使得图片大小根据窗口手动调整
namedWindow("my_windows", WINDOW_FREERATIO);
// 判断图片是否为空
if (src.empty()) {
cout << "图片不存在...." << endl;
}
// 显示图片,传入创建的窗口名称,矩阵对象
imshow("my_windows", src);
// 保存图像
imwrite("F:\\test\\1_copy.jpg", src);
// waitKey(0)阻塞程序,使得图片一直显示,否则一闪而过
waitKey(0);
// 清空所有窗口
destroyAllWindows();
return 0;
}
运行结果:

3. 图像的属性
Mat src = imread("F:\\test\\1.jpg",1);
src.size:图像的大小
src.rows:图像的高度
src.cols:图像的宽度
src.channel():图像的通道数
本文来自博客园,作者:{枫_Null},转载请注明原文链接:https://www.cnblogs.com/fengNull/articles/16667224.html

浙公网安备 33010602011771号