opencv常用函数(一)
图片的加载
// flag
enum ImreadModes {
IMREAD_UNCHANGED = -1, //如果设置,则返回的数据带有alpha通道(R,G,B,A 四个通道),否则没有alpha通道
IMREAD_GRAYSCALE = 0, //如果设置,则将图像转换为单通道灰度图像
IMREAD_COLOR = 1, //如果设置,则将图像转换成3通道BGR彩色图像
IMREAD_ANYDEPTH = 2, //如果设置,则在输入具有相应深度时返回16位/32位图像,否则将其转换为8位
IMREAD_ANYCOLOR = 4, //如果设置,则图像可能以任何颜色格式读取
IMREAD_LOAD_GDAL = 8, //如果设置,使用gdal驱动程序加载图像
IMREAD_REDUCED_GRAYSCALE_2 = 16, //如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/2
IMREAD_REDUCED_COLOR_2 = 17, //如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/2
IMREAD_REDUCED_GRAYSCALE_4 = 32, //如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/4
IMREAD_REDUCED_COLOR_4 = 33, //如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/4
IMREAD_REDUCED_GRAYSCALE_8 = 64, //如果设置,总是将图像转换为单通道灰度图像且图像大小减少1/8
IMREAD_REDUCED_COLOR_8 = 65, //如果设置,总是将图像转换为3通道BGR彩色图像且图像大小减少1/8
IMREAD_IGNORE_ORIENTATION = 128 //如果设置,不会根据EXIF的方向标志旋转图像
};
// filename: 表示图像的路径
// flags:表示读取图像的方式
Mat imread( const String& filename, int flags = -1)
图片的显示
// winname:用来展示图片的窗口名,如果窗口没有创建,则imshow函数会自动创建
// 可以使用cv::namedWindow函数创建窗口,
// mat:图像的Mat对象
void imshow(const String& winname, InputArray mat)
/*PS:
1、根据图像的深度,imshow函数会自动对其显示的灰度值进行缩放
2、如果图像的类型是8U(8位无符号),则直接显示
3、如果图像的类型是16U(16位无符号) 或 32S(32位有符号数),则imshow函数内部会自动将每个像素值除以256并显示,即将原图像素值的范围[0~255*256]映射到[0~255]
4、如果图像数据类型是32F(32位浮点数)或64F(64位浮点数),则imshow函数内部会自动将每个像素值乘以255并显示,即将原图像素值的范围由[0~1]映射到[0~255](原图像素值需要归一化)
*/
图片的保存
// filename: 需要写入的文件名 PS:output.jpg
// img: 需要保存的Mat对象
// params: 表示为特定格式保存的参数编码
bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>() )