文章目录
- 1.图像载入
- 1.1 `imread()`
- 2.图像显示
- 2.1 `namedWindow()`
- 2.2 `imshow()`
- 3.图像输出
- 3.1 `imwrite()`
1.图像载入
1.1 imread()
Mat imread( const String& filename, int flags = IMREAD_COLOR );
从文件中加载图像。
参数说明:
-
filename
:要载入的图片。 flags
:图片加载的颜色类型标志
CV_LOAD_IMAGE_ANYDEPTH
- (=2) 如果取该参数,当输入的是16位/ 32位图像时,返回对应深度的图像,否则,将其转换为8位图像。CV_LOAD_IMAGE_COLOR
- 如果取该参数,则始终将图像转换为颜色。CV_LOAD_IMAGE_GRAYSCALE
- (=0) 如果取该参数,始终将图像转换为灰度图像。> 0
- 返回3通道彩色图像。
注意,此时无alpha通道(如果原图像有)。
如果需要Alpha通道,请使用负值。= 0
- 返回灰度图像。< 0
- 按原样返回加载的图像(包括Alpha通道)。**
2.图像显示
2.1 namedWindow()
创建一个窗口。
void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
参数说明:
- winname - 窗口的名称。
- flags - 支持的标志:
-
WINDOW_NORMAL
- 用户可以手动调整窗口大小(无约束)。 -
**WINDOW_AUTOSIZE
** - 默认,自动调整窗口大小以适合显示的图像,无法手动更改窗口大小。 -
WINDOW_OPENGL
- 如果设置了此项,将使用OpenGL支持创建窗口。
注:我们可以调用destroyWindow()或者destroyAllWindows()函数来关闭窗口,并取消之前分配的与窗口相关的所有内存空间。
但对于代码量不大的简单小程序来说,我们完全没有必要手动调用上述的destroyWindow()或者destroyAllWindows()函数,因为在退出时,所有的资源和应用程序的窗口会被操作系统会自动关闭。
(引自毛星云博客)
2.2 imshow()
void imshow(const String& winname, InputArray mat);
参数:
-
winname
- 窗口的名称。namedWindow()
中的窗口名称winname
。 -
mat
- InputArray 类型的Mat,简单的当做Mat。
注:
imshow 函数用于在指定的窗口中显示图像。如果窗口是用CV_WINDOW_AUTOSIZE(默认值)标志创建的,那么显示图像原始大小。否则,将图像进行缩放以适合窗口。而imshow函数缩放图像,取决于图像的深度:
- 如果载入的图像是8位无符号类型(8-bit unsigned),就显示图像本来的样子。
- 如果图像是16位无符号类型(16-bit unsigned)或32位整型(32-bit integer),便用像素值除以256。也就是说,值的范围是[0,255 x 256]映射到[0,255]。
- 如果图像是32位浮点型(32-bit
floating-point),像素值便要乘以255。也就是说,该值的范围是[0,1]映射到[0,255]。
(引自毛星云博客)
3.图像输出
3.1 imwrite()
将图片保存到指定文件中。
bool imwrite( const String& filename, InputArray img,
const std::vector<int>& params = std::vector<int>());
参数:
-
filename
- 保存的文件名。 -
img
- InputArray 类型的Mat。