使用C++开发图像处理算法时,不需要去调用OpenCV的内置算法函数,主要是利用OpenCV完成图像文件的输入、输出以及自动内存管理(重点)。所以,只要需要掌握一些简单的OpenCV的操作即可。
1、图像读取
OpenCV支持bmp、jpg、png、tiff等常用图像格式的解析,所用API为imread。imread函数原型如下:
CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
filename参数为图像文件的路径,可以是相对路径,也可以是绝对路径;flags参数为图像文件解析的方式,支持的方式有如下:
IMREAD_UNCHANGED:不对图像文件进行任何转换,直接读取。
IMREAD_GRAYSCALE :将任何图像均转换为灰度图像(单通道)进行读取。
IMREAD_COLOR:将任何图像均转为RGB彩色图像(三通道)进行读取。
IMREAD_ANYDEPTH:如果不设置这个参数,16/32位图像将会自动转为8位图像。
IMREAD_ANYCOLOR:将按照图像文件设定的颜色格式进行图像读取。
IMREAD_LOAD_GDAL:调用gdal库进行图像文件读取。(可以简单地理解为读取TIFF图像文件)
示例代码: