日期:2020.10.26
主题:面向Python的OpenCV入门
内容:
- 在Anaconda上安装配置OpenCV;
- 学习图像处理基本操作(以下为具体代码)。
import cv2
# 1.读取静态图像 retval = cv2.imread( filename[, flags] )
# flags是读取标记(控制读取文件的类型)
header = cv2.imread("header.jpg")
# 输出图像的部分像素值
print( header )
# 2.创建指定名称的窗口 none = cv2.namedWindow( winname[,params] )
# params == 0,表示创建的窗口可任意调节大小
cv2.namedWindow("Scene",0)
# 3.显示图像 none = cv2.imshow( winname, mat)
# 可省略namedWindow函数,直接得到"Scene"窗口
cv2.imshow( "Scene", header )
# 4.等待用户按键 retval = cv2.waitKey( [delay] )
# retval 表示返回值。
# if 有按键按下,返回该键ASCII
# else 返回-1
# delay 表示等待键盘触发的时间,单位为ms。
# if delay <= 0, 表示无限等待,直到触发按键
# elif delay >0,表示等待指定时间,期间若触发按键,则继续run,否则等到超时,才继续run(实现pause的功能)
key = cv2.waitKey(0)
if key!=-1:
print("有人触发了按键")
# 5.释放(销毁)指定窗口 None = cv2.destroyWindow( winname )
# cv2.destroyWindow("Scene")
# 用函数ord()来获取字符的ASCII,然后与按键输入值比较,以实现交互功能
while(key!=ord('c')): #按'c'键结束
key = cv2.waitKey(0)
if key==ord('a'): #按'a'键,则打开"SceneA"窗口显示图片"header"
cv2.imshow( "SceneA", header )
elif key==ord('b'): #按'b'键,则打开"SceneB"窗口显示图片"header"
cv2.imshow( "SceneB", header )
# 6.释放(销毁)所有窗口 None = cv2.destroyWindow( winname )
cv2.destroyAllWindows()
# 7.保存图像 retval = cv2.imwrite( filename, img[, params])
# filename 表示保存后生成的图像的名字
# retval 表示返回值(bool),若保存成功,则为True,否则为False
# params 表示保存类型参数,可选
r = cv2.imwrite("header_cpy.jpg", header)
print(r)