赞
踩
图像处理流程一般包括加载、处理、显示和保存等步骤。
opencv-python采用numpy的ndarray多维数组保存图像数据,因此,除了可以使用opencv提供的函数对图像进行处理外,还可以利用numpy以及其他基于numpy的扩展包,如scikit-image、scipy、matplotlib等提供的函数来处理图像。
cv2.imread()函数
函数功能 | 从文件中读取图像数据 |
---|---|
函数原型 | retval=cv2.imread(filename[,flags]) |
filename | 字符串类型,指定图像文件名。图像文件应保存在当前工作目录,或者给出包含图像文件完整路径(绝对路径或相对路径)的文件名。需要注意的是,即使filename无效,也不会提醒出错信息。若返回值retval为none,则表明图像读取失败。 |
flags | 整数类型,用于指定图像文件的读入方式标志。 |
返回值 | retval-图像数据,numpy的ndarray型多维数组,数组的维数取决于读入图像的颜色通道数,如彩色图像为3维度数组,灰度图则为2维度数组。若none则表明读取图像失败。 |
flags的标志类型
flags标志 | 描述 |
---|---|
cv2.IMREAD_COLOR | 默认值,按照BGR颜色通道方式读取图像。如果图像具有透明度alpha通道,将会被忽略;如果是索引图像,则转换为真彩色图像;如果是灰度图,返回值retval为BGR颜色通道彩色图数据格式。该标志可用整数1代替 |
cv2.IMREAD_GRAYSCALE | 灰度图像,按照单通道的方式读入图像,彩色图像将被转换为灰度图像。该标志可用整数0代替 |
cv2.IMREAD_UNCHANGDE | 按照解码得到的方式读入图像,不改变图像数据格式。如果图像含有alpha通道,一并读入。该标志可用整数-1代替。 |
目前,opencv支持的图像文件格式主要有:
文件类型 | 扩展名 |
---|---|
windows位图(Windows bitmaps) | .bmp,.dib |
JPGE文件 | .jpge,.jpg,*.jpe |
JPGE2000文件 | *.jp2 |
轻便网络图形文件 | *.png |
webp文件 | *.webp |
轻便图像格式文件 | .pbm,.pgm,.ppm,.pxm,*.pnm |
sun rasters栅格文件 | .sr,.ras |
TIFF文件 | tiff,.tif |
cv2.imwrite()
函数功能 | 将图像数据保存到指定文件 |
---|---|
函数原型 | retval=cv2.imwrite(filename,img[,params]) |
filename | 字符串类型,指定图像文件名,需要包含图像文件的扩展名,如.jpg,filename若不包含目录路径,则将图像文件保存到当前工作目录,可在filename中指定保存文件的相对路径或绝对路径 |
img | ndarray类型的多维度数组,图像数据数组变量 |
params | 可选参数,用于指定与保存的图像文件格式相关的控制参数 |
返回值retval | retval-bool变量,true保存成功,false保存失败。 |
cv2.imshow()
函数功能 | 在指定的窗口中显示图像 |
---|---|
函数原型 | cv2.imshow(winname,mat) |
winname | 字符串类型,指定显示窗口的名字。如果不存在,则建立显示窗口。 |
mat | ndarray型数组,要显示的图像数组变量 |
cv2.waitKey()
函数功能 | 键盘绑定等待函数,等待键盘输入 |
---|---|
函数原型 | retval=cv2.waitKey([,delay]) |
delay | 整数类型,指定键盘输入事件的等待时间,单位为毫秒。若delay>0,函数将原地等待指定的delay毫秒,并检测是否存在键盘输入。在指定的delay时间延时结束前,如果按下任意键,结束等待,程序继续运行,函数返回值为-1,。如果delay<=0,函数将会无限期限等待键盘的输入,可以用来检测特定键是否按下,如检测esc键是否按下。 |
返回值 | retval-整数类型,按键的码值,或者-1 |
cv2.nameWindow()
函数功能 | 创建一个指定名称的显示窗口 |
---|---|
函数原型 | cv2.nameWindow(winname[,flags]) |
winname | 字符串类型,指定创建的窗口名称。可把该字符串作为函数cv2.imshow(winname,mat)的第一个参数,将图像显示在该窗口内。 |
flags | 整数类型,指定窗口模式标志,默认值cv2.WINDOW_AUTOSIZE,窗口根据显示图像的尺寸自动确定大小,不能使用鼠标调整。若采用cv2.WINDOW_NORMAL,就可以用鼠标拖拽调整窗口大小。 |
cv2.videoCapture()
函数功能 | 创建一个VideoCapture对象 |
---|---|
函数原型 | =cv2.VideoCapture(index[,apiPreference])=cv2.VideoCapture(filename[,apiPreference]) |
index | 整数类型,要打开的视频采集设备的id号。若采用默认的视频采集设备和API后端,则令index为0 |
filename | 字符串类型,视频文件(可包含文件路径)、视频流的url地址或者图像序列 |
返回值 | < VideoCapture object>,返回一个视频对象,具有多个成员函数,用于操作视频源。 |
cv2.VideoWrite()
函数功能 | 创建一个保存视频文件的VideoCapture对象 |
---|---|
函数原型 | vidobj=cv2.VideoWrite(filename,fourcc,fps,frameSize[,isColor]) |
filename | 字符串,指定保存的视频文件名,可包含文件存放的路径,并使用扩展名指定视频文件的类型,如常见的avi、MP4等 |
fourcc | 字符串,指定保存的视频文件的视频编码器类型,4字符标识代码,如‘XVID’ |
frameSize | 整数元组,指定保存的视频图像帧的宽、高,格式(width,hight) |
isColor | bool类型,如果true保存的视频为彩色图像,若为false则保存为灰度 |
返回值 | 视频对象VideoCapture对象 |
参考书籍:张运楚,python数字图像处理,中国建筑工业出版社
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。