OpenCV文档阅读笔记-Imread flags解析与实例(保存透明图像)

目录

官方解析

博主例子(保存透明图像)


官方解析

Imread flags

enum ImreadModel{
IMREAD_UNCHANGED=1,    //读取原图不做任何修改,有alpha通道就读取,无alpha通道那么图片会被省略
IMREAD_GRAYSCALE=0,    //图图像转化为单通道的灰度图像;
IMREAD_COLOR=1,    //转化为3通道的BGR图像imread函数默认情况下参数就为这个;
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通道的RGB,并且把原图尺寸减少1/2;
IMREAD_REDUCED_GRAYSCALE_4=32,    //把图片转化为单通道的BGR图片,并且原尺寸减少1/4;
IMREAD_REDUCED_COLOR_4=33,    //把图片转化为3通道的RGB,并且把原图尺寸减少1/4;
IMREAD_REDUCED_GRAYSCALE_8=64,    //把图片转化为单通道的BGR图片,并且原尺寸减少1/8;
IMREAD_REDUCED_COLOR_8=65,    //把图片转化为3通道的RGB,并且把原图尺寸减少1/8;
IMREAD_IGNORE_ORIENTATION=128    //不因EXIF's方向标志而转化图像的坐标
};

 

博主例子(保存透明图像)

这样的骚操作,读取一个bng带透明通道的图,再保存

源码如下:

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgproc/imgproc_c.h>

using namespace std;
using namespace cv;

int main(){

	Mat matSrc=imread("5.png",IMREAD_UNCHANGED);
	imshow("5.png",matSrc);

	imwrite("6.png",matSrc);
	waitKey();

	getchar();
	return 0;
}

程序运行截图如下:

OpenCV文档阅读笔记-Imread flags解析与实例(保存透明图像)

可以发现,保存的图片会大点,原因呢,暂时也不太清楚,后期再补充