环境: python3,opencv-python
函数:
1. 图像的读取: cv2.imread(filename[,flags])
2. 图像的修改: cv2.cvtColor(src,code[,dst[,dstCn]])
3. 图像的查看: cv2.imshow(winname,mat)
4. 图像的保存: cv2.imwrite(filename,img[,params])
参考自: 初识 OpenCV3 - 图像的读, 写, 显, 格式转化等 https://www.cnblogs.com/zyly/p/8809831.html
cv2.imread(filename[,flags])
参数 1:filename 可以是文件名(带后缀:'img2.jpg'), 也可以是路径 + 文件名(带后缀:'./image/img2.jpg'). 如果是文件名则在当前文件夹下读取, 即与运行的代码同级目录下; 若是路径 + 文件名(相对路径或绝对路径), 则在对应文件夹下读取.
参数 2: 是标志位, 要告诉函数应该如何读取这幅图片, 即指定加载图片的颜色类型, 默认加载类型是 cv2.IMREAD_COLOR, 读入 BGR(在 opencv 中, 其默认的颜色制式排列是 BGR 而非 RGB)彩色图像.
cv2.cvtColor(src,mode[,dst[,dstCn]])
参数 1: 要进行颜色空间转换的图像.
参数 2: 从什么制式的图像转换成什么制式的图像.
颜色空间转换
cv2.imshow(winname,mat)
参数 1: 展示图像的窗口的名字, 可随意取.
参数 2: 想要展示的图像.
cv2.imwrite(filename,img[,params])
参数 1: 可以是文件名(带后缀:'img2.jpg'), 也可以是路径 + 文件名(带后缀:'./image/img2.jpg'). 如果是文件名则保存在当前文件夹下, 即与运行的代码同级目录下; 若是路径 + 文件名(相对路径或绝对路径), 则保存在对应文件夹下.
参数 2: 想要保存的图像.
- import cv2
- img = cv2.imread('./image/img2.jpg')# 读入图像, 返回一个数组
- gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)# 颜色空间变换, 返回一个数组
- cv2.imshow('gray_img',gray_img)# 查看图片
- cv2.waitKey()# 等待用户按键触发
- cv2.destroyAllWindows()# 销毁窗口
- cv2.imwrite('./image/gray_img2.jpg',gray_img)# 保存图像到本地
原图:
img2.jpg
保存到本地的图:
gray_img2.jpg
摘自: OpenCV-Python 学习之 (一)waitKey() 函数详解
waitKey()函数详解 :
1.1 waitKey()-- 这个函数是在一个给定的时间内 (单位 ms) 等待用户按键触发; 如果用户没有按下 键, 则接续等待(循环)
1.2 如下所示: while(1){ if(waitKey(100)==27)break; } 在这个程序中, 我们告诉 OpenCv 等待用户触发事件, 等待时间为 100ms, 如果在这个时间段内, 用户按下 ESC(ASCII 码为 27), 则跳出循环, 否则, 则继续循环
1.3 如果设置 waitKey(0), 则表示程序会无限制的等待用户的按键事件
注意: python 下 cv.waitKey 无响应原因
按下键的时候, 焦点要落在窗口上, 不能落在 cmd 窗口上.
另外, 一般在 imshow()后要使用 waitKey(), 给图像绘制留下时间, 不然窗口会出现无响应情况, 并且图像无法显示出来.
int waitKey(int delay=0)
延时 delay = 0 函数则延时无限长, 必须有键按下才继续执行.
延时 delay> 0 函数返回值为按下的键的 ASCII 码值, 超时则返回 - 1.
也就是说必须在有窗口显示的情况下, waitKey 才有作用, 否则无效.
比如调用 cv.waitKey(0), 如果此时没有活动的窗口, 该函数立刻返回 - 1
cv2.waitKey()与 cv2.destroyAllWindows()
在 jupyter notebook 的实践结果:
cv2.waitKey():
1. 传不传参数, 没发现差异;
2. 不加这行看不到图像;
3. 阻塞后面代码执行, 直到按键被按下或窗口关闭.
cv2.destroyAllWindows(): 不加这行会导致 python 崩溃.
来源: http://www.jianshu.com/p/ca6be973b3e3