学习OpenCV-Python
Day01—学习基本的窗口的创建、调整、显示、销毁和图片读取功能
1. namedWindow(winname, flags:int = …)
函数功能:创建一个名称为winname的窗口,窗口显示的模式flags有:
1. WINDOW_AUTOSIZE(默认):窗口大小会自动调整以适应所显示的图像,并且不能修改窗口大小。
2. WINDOW_NORMAL:允许手动更改窗口的大小,通过resizeWindow()修改窗口大小。
3. WINODW_FULL_SCREEN:将窗口大小更改成全屏(目前测试与WINDOW_AUTOSIZE效果一致)。
4. WINDOW_OPENGL:窗口支持OpenGL功能。
2. resizeWindow(winname, width, height)
函数功能:指定winname的窗口大小,新窗口宽度width,新窗口高度height,适用于不包括工具栏的图像。仅适用于具有除WINDOW_AUTOSIZE以外的模式已创建的窗口。
3. imshow(winname, mat)
函数功能:在winname窗口上显示mat图像。根据图像的深度,imshow函数会自动对其显示灰度值进行缩放,规则如下:
1. 如果图像数据类型是8U(8位无符号),则直接显示。
2. 如果图像数据类型是16U(16位无符号)或32S(32位有符号整数),则imshow函数内部会自动将每个像素值除以256并显示,即将原图像素值的范围由[0~255*256]映射到[0~255]。
3. 如果图像数据类型是32F(32位浮点数)或64F(64位浮点数),则imshow函数内部会自动将每个像素值乘以255并显示,即将原图像素值的范围由[0~1]映射到[0~255](原图像素值必须要归一化)。
4. imread(filename: str, flags: int = …)
函数功能:读取路径为str的图片,并且返回图片对象,读取失败则返回None,读取的模式flags有:
1. IMREAD_GRAYSCALE:使用编解码器的内部灰度转换。结果可能与cvtColor()的输出不同。
2. IMREAD_LOAD_GDAL:驱动GDAL驱动来解码图像,支持以下格式:栅格、矢量。
如果图像文件中嵌入了EXIF信息,则会考虑EXIF方向,因此图像将相应地旋转,除非传入了标志IMREAD_IGNORE_ORIENTATION或IMREAD_UNCHANGE。
(EXIF信息是镶嵌在 JPEG/TIFF 图像文件格式内的一组拍摄参数,需要注意的是 EXIF 信息是不支持 png,webp 等图片格式的,包含了图片旋转信息
3. IMREAD_IGNORE_ORIENTATION:如果设置,不根据EXIF的方向标志旋转图像。
4. IMREAD_UNCHANGED:如果设置了,则按原样返回加载的图像(带alpha通道,否则会被裁剪,忽略EXIF方向)。使用IMREAD_UNCHANGED标志来保持PFM图像的浮点值。
默认情况下,像素数必须小于2^30。可以使用系统变量OPENCV_IO_MAX_IMAGE_PIXELS来设置限制。
目前,支持的文件格式如下:
始终支持的:
Windows位图 :*.bmp, *.dib,
Sun rasters:*.sr, *.ras。
Radiance HDR: *.hdr, *.pic 。
Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm
根据注释来变化的支持:
JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section)
JPEG 2000 files - *.jp
Portable Network Graphics - *.png
WebP - *.webp
PFM files - *.pfm
TIFF files - *.tiff, *.tif
OpenEXR Image files - *.exr
Raster and Vector geospatial data supported by GDAL
5. waitKey(delay = …)
函数功能:功能是不断刷新图像,频率时间为delay,单位为ms。该函数通常用在显示图像函数之后。
当delay > 0时,则延迟delay时间(单位ms)。
当delay <= 0时,如果没有键盘触发,则一直等待,否则返回值为键盘按下的ASCII码值。
6. destroyWindow(winname)
函数功能:关闭并销毁已创建的winname窗口。
7. destroyAllWindows()
函数功能:关闭并销毁已创建的所有窗口。
对于一个简单的程序,实际上不必调用destroyWindow或destroyAllWindows函数,因为退出时操作系统会自动关闭应用程序的所有资源和窗口。