原文: GUI接口之读写保存图像
环境资源准备
作者使用的是64位的win7 系统
1. 软件及版本
下载opencv-3.2.0-vc14 版本,python 使用 anaconda 2.4 版本,使用3.x版本的anaconda存在兼容性问题(目前opencv版本使用python2.7版本玩的)。
安装Python Anaconda2.4,PyCharm IDE,及opencv,将opencv\build\Python\2.7\x64 目录下的cv2.pyd文件拷贝到Anaconda2\Lib\site-packages下,打开PyCharm
2. 配置 pycharm 解释器
参考文章 : 配置python解释器
不配置时,在编写代码时,pycharm 一直提示: “NO python interpreter configured for the project”
通过如下界面将解释器配置为 anaconda2。
在创建工程,创建新的文件后,在pycharm中并不能立即运行或者debug,需要配置Run/Debug
图像文件读写
1. Read an image
函数: cv2.imread(dir, flag)
参数
dir: 绝对路径或者当前python目录下的图像
flag选项有三个
cv2.IMREAD_COLOR : Loads a color image. Any transparency of image will be neglected. It is the default flag.
cv2.IMREAD_GRAYSCALE : Loads image in grayscale mode
cv2.IMREAD_UNCHANGED : Loads image as such including alpha channel
上述三个宏对应的值分别为1, 0,-1
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('messi5.jpg',0)
如果read读取时,路径下面没有messi5.jpg文件,也不会报错,而仅仅在print img时,提示none,在进行实际编码时,要判断img的值
2. Display an image
函数: cv.imshow("window name",image)
参数
window name: 打开图像的窗口 名称
image : 1中读取的图像的句柄
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
3. Write an image
imwrite("dir",img_handler)
dir: 目录及文件名
img_handler: 图像句柄
4. 视频播放
基本原理就是打开窗口,将视频以图画的形式不断显示。waitKey的时间修改为100 ms,相当于慢放。
import numpy as np
import cv2
cap = cv2.VideoCapture("test.avi")
while (cap.isOpened()):
ret,frame = cap.read()
gray =cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
cv2.imshow('frame',gray)
if cv2.waitKey(100) & 0xff == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
其他GUI的操作
包括:
1)视频的抓取、播放、保存接口
2)鼠标事件的感知接口
3)画图形。例如圆,长方形 ,椭圆等
4)调色板功能介绍