1.API介绍
创建窗口的API是namedWindow,该API实现的功能是:
创建一个窗口,可以用作图像和轨迹栏的占位符。创建的窗口通过它们的名称来引用。
API定义如下:
def namedWindow(winname, flags=None)
winname: 创建的窗口名称
flags: 创建的窗口类型,默认是None
flags取值如下:
WINDOW_NORMAL = 0 # 用户可以调整大小
WINDOW_AUTOSIZE = 1 # 自动调整到显示图像的大小
WINDOW_FULLSCREEN = 1 # 将窗口更改为全屏
WINDOW_OPENGL = 4096 # 支持opengl的窗口
WINDOW_FREERATIO = 256 # 图像尽可能地扩展,不受比例约束
WINDOW_KEEPRATIO = 0 # 保持图像比例扩展
WINDOW_GUI_EXPANDED = 0 # 新的增强的GUI
WINDOW_GUI_NORMAL = 16 # 绘制窗口的旧方法
销毁所有窗口:
def destroyAllWindows()
销毁指定的窗口:
def destroyWindow(winname)
winname: 要被关闭的窗口
2.保存图像
保存图像的API是imwrite,该API实现的功能是:
将图像保存到指定文件,图像格式是根据文件扩展名选择的。
一般支持以下格式图片:
(1)Windows位图,\*.bmp,\*.dib
(2)JPEG文件,\*.JPEG、\*.jpg、\*.jpe
(3)JPEG 2000文件,\*.jp2
(4)便携式网络图形,\*.png
(5)WebP,\*.webp
(6)Sun rasters, \*.sr, \*.ras
(7)TIFF文件,\*.TIFF,\*.tif
(8)OpenEXR图像文件,\*.exr
(9)Radiance HDR,\*.HDR,\*.pic
(10)GDAL支持的栅格和矢量地理空间数据
API定义如下:
def imwrite(filename, img, params=None)
filename: 要保存的文件名,可以包括路径
img: 要保存的图像
params: 格式化编码为成对的特定参数
params可取值如下:
IMWRITE_EXR_TYPE = 48
IMWRITE_EXR_TYPE_FLOAT = 2
IMWRITE_EXR_TYPE_HALF = 1
IMWRITE_JPEG2000_COMPRESSION_X1000 = 272
IMWRITE_JPEG_CHROMA_QUALITY = 6
IMWRITE_JPEG_LUMA_QUALITY = 5
IMWRITE_JPEG_OPTIMIZE = 3
IMWRITE_JPEG_PROGRESSIVE = 2
IMWRITE_JPEG_QUALITY = 1
IMWRITE_JPEG_RST_INTERVAL = 4
IMWRITE_PAM_FORMAT_BLACKANDWHITE = 1
IMWRITE_PAM_FORMAT_GRAYSCALE = 2
IMWRITE_PAM_FORMAT_GRAYSCALE_ALPHA = 3
IMWRITE_PAM_FORMAT_NULL = 0
IMWRITE_PAM_FORMAT_RGB = 4
IMWRITE_PAM_FORMAT_RGB_ALPHA = 5
IMWRITE_PAM_TUPLETYPE = 128
IMWRITE_PNG_BILEVEL = 18
IMWRITE_PNG_COMPRESSION = 16
IMWRITE_PNG_STRATEGY = 17
IMWRITE_PNG_STRATEGY_DEFAULT = 0
IMWRITE_PNG_STRATEGY_FILTERED = 1
IMWRITE_PNG_STRATEGY_FIXED = 4
IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY = 2
IMWRITE_PNG_STRATEGY_RLE = 3
IMWRITE_PXM_BINARY = 32
IMWRITE_TIFF_COMPRESSION = 259
IMWRITE_TIFF_RESUNIT = 256
IMWRITE_TIFF_XDPI = 257
IMWRITE_TIFF_YDPI = 258
IMWRITE_WEBP_QUALITY = 64
含义如下:
代码示例:
import cv2 as cv
img = cv.imread('./image/sign.png') # 默认方式
# 保存图片
cv.imwrite("./image/sign1.jpg", img)