导入一些必要的库
import numpy as np
import cv2
1、图片的读取
cv2.imread(文件名,标记)#读入图片
第二个参数有如下三种形式:
- cv2.IMREAD_COLOR #加载一个彩色图片,图片的透明度会被忽律,也是缺省参数。
- cv2.IMREAD_GRAYSCALE #加载黑白图片
- cv2.IMREAD_UNCHANGED #加载包含alpha通道的图片
上面三个参数可以用1、0、-1表示
例如:img = cv2.imread('test.jpg',0),如果图片路径错误,不会抛出错误,什么也不输出
2、显示图片
cv2.nameWindow('image',cv2.WINDOW_NORMAL) #调整窗口大小,第二个参数函数默认为cv2.WINDOW_AUTOSIZE,自适应大小;当改为WINDOW_NORMAL时可以调整窗口大小
cv2.imshow('窗口名',img) #在窗口中显示图片,第一个参数为窗口名称,第二个参数为加载图片,可以设置不同窗口名,来创建多个窗口
cv2.waitKey( ) #绑定键盘,参数为毫秒,该函数等待指定的毫秒来接受键盘输入,当参数为0时,一直等待状态
cv2.destroyAllWindows() #销毁所有窗口
3、保存图片
cv2.imwrite('文件名',图片) #保存图片
例如:cv2.imwrite('test.jpg',img)
4、练习加载一个灰度图,显示图片,按下‘s’键保存后退出,或者按下ESC键退出不保存
import numpy as np
import cv2
img = cv2.imread('test.jpg',0)
cv2.imshow('image',img)
if cv2.waitKey(0) & 0xFF == 27
cv2.destroyAllWindows() #wait for ESC key to exit
elif cv2.waitKey(0) & 0xFF == ord('s'):
cv2.imwrite('test1.png',img) #wait for 's' key to save and exit
cv2.destoryAllWindows()
5、与matplotlib库:
彩色图片使用opencv加载是使用BGR模式,但是使用Matplotlib库是用RGB模式,所以如果使用opencv读取图片,彩色图片不会在Matplotlib中正确的显示。