加载图像(cv::imread)
功能:是加载一个图像文件成为Mat对象
格式:
1 | Mat imread( const String& filename, int flags = IMREAD_COLOR ); |
解释:
参数类型的 | 描述 | |
const String& 类型的 filename | 表示图像文件的名称,常见的图像格式有JPG、PNG、TIFF等 | |
int 类型的 flags | 表示加载图像是什么类型,默认为三通道RGB彩色图像,支持常见的三个参数值:
|
显示图像(cv::imshow)
功能:是根据窗口名称显示图像到窗口上去
格式:
1 | void imshow(const String& winname, InputArray mat); |
解释:
参数类型的 | 描述 |
const String& 类型的 winname | 填需要显示的窗口标示名称 |
InputArray 类型的 mat | 填需要显示的图像 |
创建窗口(cv::namedWindow)
功能:是创建一个OpenCV窗口,它由OpenCV自动创建于释放。
格式:
1 | void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE); |
解释:
参数 | 描述 | ||
Const 类型的 String& winname | 填写创建窗口名称 | ||
Int 类型的 flags | 窗口标识,常见的三种值:
|
修改图像:(cv::cvtColor)
作用:cvtColor的功能是将图像从一个色彩空间转换到另一个色彩空间。
格式:
1 | void cvtColor( InputAvoid cvtColor( InputArray src), OutputArray dst, int code, int dstCn = 0 ); |
解释:
参数 | 描述 |
InputAvoid cvtColor( InputArray src ) | 原图像 |
OutputArray dst | 色彩空间转换之后的图像 |
Int 类型的 dstCn | 源和目标色彩空间例如:COLOR_BGR2HLS、COLOR_BGR2GRAY等 |
保存图像到指定文件:imread()函数
格式:
1 | bool imwrite( const String& filename, InputArray img,const std::vector<int>& params = std::vector<int>()); |
参数:
参数 | 描述 |
const 类型的 String& filename | 填写存储出的位置、文件名称以及后缀例如"D:/1.jpg" |
InputArray 类型的 img | 一般填写Mat类型的图像数据名称 |
Const 类型的 std | 表示为指定格式保存的参数编码(一般可不填) |
颜色空间转换:cvtColor()函数
格式:
1 | void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 ); |
参数:
参数 | 描述 |
InputArray src | 输入图像 |
OutputArray dst | 输出图像 |
Int 类型的 code | 颜色空间转换的标识符 |
Int 类型的 dstCn | 目标图像的通道数,默认为0,表示目标图像取源图像的通道数 |
例子:
1 2 | Mat src1, dst; cvtColor(src1, dst, CV_BGR2GRAY); |
拓展:
完整实例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <opencv2/opencv.hpp> #include <iostream> #include <math.h>
using namespace cv; int main(int argc, char**argv) { Mat src = imread("./picture/1.jpg"); //Mat src = imread("D:/Picture/123.jpg", IMREAD_GRAYSCALE);看、可以为绝对路径与相对路径 if (src.empty()) { printf("路径不对"); return -1; } /*namedWindos创建一个OpenCV窗口 */ imshow("input", src);
namedWindow("output_Gary", WINDOW_AUTOSIZE); /* WINDOW_AUTOSIZE:自动调整为适应图像大小窗口 WINDOW_NORMAL:用户可以改变窗口大小 WINDOW_OPENGL;创建窗口支持OPENGL IMREAD_COLOR作为RGB加载 */ Mat output_woman; cvtColor(src, output_woman, CV_BGR2GRAY); //将图像转换为灰度图 imshow("output_Gary", output_woman);
imwrite("焰灵姬.jpg", output_woman); //保存图像
waitKey(0); return 0; } |
运行结果: