Mat imread(const String& filename, int flags = IMREAD_COLOR)
此函数从指定文件加载图像,并作为 Mat 对象返回。如果函数无法读取文件,它将返回一个空的 Mat 对象。
-
filename- 必须提供图像文件的相对或绝对路径。如果您提供相对路径,则它应该相对于您的 cpp 文件。始终支持 jpeg、jpg、bmp、png、tiff 和 tif 图像文件类型。根据您的平台和安装的编解码器,支持其他图像文件类型。
-
flags - flag 参数有几个可能的值。使用默认的 IMREAD_COLOR 参数。
-
- IMREAD_UNCHANGED - 图像将按原样加载。如果你想在你的输入图像中获得 alpha 通道(如果它可用),你必须使用这个标志。
- IMREAD_GRAYSCALE - 图像将作为灰度图像加载(即 - 单通道图像,黑白图像)
- IMREAD_COLOR - 图像将作为 BGR 图像加载(即 - 3 通道图像,彩色图像)
void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE)
此函数创建一个可用于放置图像和跟踪条的窗口。如果具有给定名称的窗口已存在,则此函数不执行任何 *** 作。
-
winname - 窗口的名称。该名称将显示在新创建窗口的标题栏中。此名称也是此窗口的标识符,它将在以后的 OpenCV 函数调用中用于标识该窗口。
-
flags - 确定窗口的大小。默认的 WINDOW_AUTOSIZE 参数。
-
- WINDOW_AUTOSIZE - 用户无法调整窗口大小。图像将以其原始尺寸显示。
- WINDOW_NORMAL- 用户可以调整窗口大小。
void imshow(const String& winname, InputArray mat)
此函数在由 winname 指定的窗口中显示图像。如果窗口是用 WINDOW_AUTOSIZE 标志创建的,图像将以其原始大小显示。否则图像可能会缩放到窗口的大小。如果尚未通过调用 namedWindow() 函数创建窗口,该函数将创建一个带有 WINDOW_AUTOSIZE 标志的窗口。
此函数调用之后应该是 waitKey(int) 函数调用,以便提供足够的时间在指定的持续时间(以毫秒为单位)在窗口中绘制和显示图像。如果不调用waitKey(int) 函数,图像将不会显示在窗口中。
- winname - 由 namedWindow() 函数创建的窗口的名称。
- mat - 需要显示图像的 Mat 对象
void cvtColor(InputArray src, OutputArray dst, int code,int dstCn = 0)
颜色空间转换函数。
- src - 输入图像:8 位无符号、16 位无符号 ( CV_16UC… ) 或单精度浮点。
- dst - 输出与 src 大小和深度相同的图像。
- code - 颜色空间转换代码(请参阅ColorConversionCodes)。
- dstCn - 目标图像中的通道数;如果参数为 0,则通道数自动从 src 和 code 导出。
bool cv::imwrite(const String& filename, InputArray img, const std::vector< int > & params = std::vector< int >())
将图像保存到指定文件。
- filename- 必须提供图像文件的相对或绝对路径。如果您提供相对路径,则它应该相对于您的 cpp 文件。始终支持 jpeg、jpg、bmp、png、tiff 和 tif 图像文件类型。
- img- 需要保存图像的 Mat 对象。
- params-可选参数,一般情况下忽略即可。
示例1:
#include#include using namespace std; using namespace cv; int main() { Mat in_image, out_image; in_image = imread("C:\Users\67231\Desktop\NASA_LS.png", IMREAD_UNCHANGED);//IMREAD_UNCHANGED表示存储到内存的影像不会改变 //判断影像是否读入 if (in_image.empty()) { cout << "报错!影像未被读入..." << endl; return -1; } //创建两个窗口 namedWindow("窗口1", 0); namedWindow("窗口2", 0); //在创建的窗口中显示图像 imshow("窗口1", in_image); // 将BGR颜色转为灰度图像 cvtColor(in_image, out_image, COLOR_BGR2GRAY); imshow("窗口2", out_image); // 在窗口中等待任何键被点击 waitKey(0); //销毁窗口1、2 destroyWindow("窗口1"); destroyWindow("窗口1"); imwrite("C:\Users231\Desktop\NASA_LS_gray.png", out_image); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)