赞
踩
在图像处理过程中,读取图像、显示图像、保存图像是最基本的操作。下面将简单介绍这几项基本操作。
使用函数cv2.imread()来读取图像,该函数支持各种静态图像格式。
retval = cv2.imread(filename[,flags])
flags标记可取值,其中第一列和第三列都可作为标记值
例1-读取当前目录下名为rhz.png的图像,并保持原有格式读入
import cv2
rhz = cv2.imread("rhz.png",-1)
print(rhz)
运行程序后,会输出图像的像素值,如图1-1所示。
OpenCV中有多个与显示有关的函数
函数cv2.namedWindow()用来创建指定名称的窗口
#Test = cv2.namedWindow("窗口名字")
cv2.namedWindow("窗口1")
函数cv2.imshow()用来显示图像
Test = cv2.imshow("窗口名字",要显示的图像)
例2-创建一个窗口并在其中显示读取的图像
import cv2
#读取图像
test = cv2.imread("rhz.jpg")
#创建窗口
cv2.namedWindow("窗口1")
#显示图像
cv2.imshow("窗口1",test)
函数cv2.waitKey()用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值。
#retval表示返回值,若按键未被按下,则返回-1;若按下,则返回按键的ASCII码值
#delay time表示等待按键触发的时间(ms),当该值为负或者0,表示无限等待,默认值为0,只有事件触发后才执行后续代码
retval = cv2.waitKey([delay time])
通过将返回值与ASCII码值进行比较,就可以确定是否按下了某个特定的键。
Python提供了函数ord(),用来获取字符的ASCII码值。
if cv2.waitKey()==ord('A'):
#如果按下"A",则响应
例1-3 在一个窗口内显示图像,并针对按键响应不同事件
import cv2
test = cv2.imread("rhz.jpg")
cv2.imshow("xxx",test)
key = cv2.waitKey()
if key == ord("A"):
cv2.imshow("A被按下-新的窗口名A",test)
elif key == ord("B"):
cv2.imshow("B被按下-新的窗口名B",test)
函数cv2.destroyWindow()用来释放(销毁)指定窗口
None = cv2.destroyWindow("窗口名字")
例1-4 按下按键"A“释放窗口
import cv2
test = cv2.imread("rhz.jpg")
cv2.imshow("xxx",test)
key = cv2.waitKey()
if key == ord("A"):
cv2.destroyWindow("xxx")
运行上述程序,首先会在一个名为XXX的窗口内显示rhz.jpg图像。在程序运行的过程中,当未按下键盘上的按键时,程序没有新的状态出现;当按下键盘上的按键"A"后,窗口XXX会被释放。
函数cv2.destroyAllWindows()用来释放(销毁)所有窗口
None = cv2.destroyALLWindows()
例1-5 按下按键A展示第一张图片,按下按键B展示第二张图片,按下按键C,使用函数cv2.destroyAllWindows()释放所有窗口
import cv2
test = cv2.imread("rhz.jpg")
cv2.imshow("xxx0",test)
while(1):
key = cv2.waitKey()
if key == ord("A"):
cv2.imshow("xxx1",test)
elif key == ord("B"):
cv2.imshow("xxx2",test)
elif key == ord("C"):
cv2.destroyAllWindows()
使用函数cv2.imwrite(),用来保存图像
#函数返回的是布尔值,True表示保存成功,False为失败
#filename保存的目标文件的完整路径,包含文件扩展名
#img是保存图像的名字
#params保存类型参数,可选
test = cv2.imwrite(filename,img[,params])
例1-6 读取的图像以名称1.png保存到当前目录下
import cv2
#读取图像,生成副本图像test
test = cv2.imread("rhz.jpg")
#保存图像
r = cv2.imwrite("1.png",test)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。