图像处理基本操作

1.读取图像

OpenCV 提供函数 cv2.imread()用于读取图像,该函数支持各种静态图像格式,其语法格式为:    retval = cv2.imread( filename[, flags] )

retval 是返回值,其值为读取到的图像。若未读取到图像,则返回"None";

filename 表示要读取的图像的完整文件名;

flags 是读取标记,用来控制读取文件的类型,详情如下表;
图像处理基本操作_第1张图片

# 例一
import cv2
lena=cv2.imread("lena_color.jpg")
print(lena)

图像处理基本操作_第2张图片
上述程序首先会读取当前目录下的图像lena_color.jpg,然后print语句打印读取的图像的部分像素值。

图像处理基本操作_第3张图片

2.显示图像

2.1 namedWindow函数

函数 cv2.namedWindow()用来创建指定名称的窗口,其语法格式为:    None=cv2.namedWindow( winname )

winname 是要创建的窗口的名称。

2.2 imshow函数

函数 cv2.imshow() 用来显示图像,其语法格式为:    None = cv2.imshow( winname, mat )

winname 是窗口名称,mat 是要显示的图像。

2.3 waitKey函数

函数 cv2.waitKey() 用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值。
其语法格式为:    retval = cv2.waitKey( [delay] )

retval 表示返回值。如果没有按键被按下,则返回−1;如果有按键被按下,则返回该按键的 ASCII 码。

delay 表示等待键盘触发的时间,单位是 ms。当该值是负数或者零时,表示无限等待。该值默认为 0。

# 例二
import cv2
lena_color=cv2.imread("lena_color.jpg")  #读取图像lena_color.jpg
cv2.namedWindow("lena")                #创建一个名为lena的窗口
cv2.imshow("lena", lena_color)          #在窗口lena内显示图像lena_color.jpg
cv2.waitKey(0)                         #设置waitKey(0),代表按任意键继续

图像处理基本操作_第4张图片

在实际应用中,可以先通过函数 cv2.namedWindow() 来创建一个窗口,再让函数cv2.imshow()引用该窗口来显示图像。

也可以不创建窗口,直接使用函数 cv2.imshow() 引用一个并不存在的窗口,并在其中显示指定图像,这样函数 cv2.imshow()实际上会完成如下两步操作。

步骤一:函数 cv2.imshow() 创建一个指定名称的新窗口。

步骤二:函数 cv2.imshow() 将图像显示在刚创建的窗口内。

如下程序,函数 cv2.imshow() 完成了创建lena窗口和显示lena_color.jpg图像的操作,该语句的效果与例二的效果相同。

# 例三
 import cv2
lena_color=cv2.imread("lena_color.jpg")  #读取图像lena_color.jpg
cv2.imshow("lena", lena_color)           #在窗口lena内显示图像lena_color.jpg
cv2.waitKey(0)                           #设置waitKey(0),代表按任意键继续

2.4 destroyWindow函数

函数 cv2.destroyWindow() 用来释放(销毁)指定窗口,其语法格式为:    None = cv2.destroyWindow(winname )

winname是窗口的名称,在实际使用中,该函数通常与函数 cv2.waitKey()组合实现窗口的释放。

2.5 destroyAllWindows函数

函数 cv2.destroyAllWindows() 用来释放(销毁)所有窗口,其语法格式为:
None = cv2.destroyAllWindows( )

3.保存图像

OpenCV 提供了函数 cv2.imwrite(),用来保存图像,其语法格式为:
retval = cv2.imwrite( filename, img[, params] )

retval 是返回值。若保存成功,则返回逻辑值真(True);若保存不成功,则返回逻辑值假(False)。

filename 是要保存的目标文件的完整路径名,包含文件扩展名。

img 是被保存图像的名称。

params 是保存类型参数,是可选的。

# 例四
import cv2
lena_gray=cv2.imread("Lena_gray.jpg")
r=cv2.imwrite("Lena_gray_copy.jpg",lena_gray)

如例四,程序会先读取当前目录下的图像Lena_gray.jpg,随后生成它的一个副本图像,将其以Lena_gray_copy.jpg保存到当前目录下。
在这里插入图片描述

你可能感兴趣的:(Digital,images,python,opencv)