读入图像
import cv2
path = r'D:/python/c_vision/lena.jpg'
img = cv2.imread(path,0) #第二个参数flags=1是彩色图像;flags=0是灰度图像
window_name = 'image' #名称随便起
cv2.imshow(window_name,img)
cv2.waitKey(0) #键盘绑定函数,在指定时间内有键盘输入,返回按键的ascii码,0:代表无限等待键盘输入
cv2.destroyAllWindows() #轻易删除任意我们创建的窗口
当 cv2.imread(path,1),彩色图像
保存图像
cv2.imwrite('D:/python/c_vision/lena_grey.png',img) #路径信息和图片
可调节窗口大小
可以手动将窗口拉长、拉宽
import cv2
path = r'D:/python/c_vision/lena.jpg'
img = cv2.imread(path,1)
cv2.namedWindow('image',cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey()实例
加载并显示一张图片,按下's'键保存并退出,或按'ESC'键退出不保存。
import cv2
path = r'D:/python/c_vision/lena.jpg'
img = cv2.imread(path,1)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k==27: # ESC的ascii码是27
cv2.destroyAllWindows()
elif k==ord('s'):
cv2.imwrite('D:/python/c_vision/lena.jpg',img)
cv2.destroyAllWindows()
Matplotlib显示图片
当用opencv加载一个灰度图像时,用matplotlib和cv2显示图像相同。不同的是,Matplotlib显示彩色图像是RGB模式,而cv2是BGR模式。
1、用opencv加载一个彩色图像,而使用matplotlib显示
import cv2
import matplotlib.pyplot as plt
path = r'D:/python/c_vision/lena.jpg'
img = cv2.imread(path,1)
# 设置cmap=‘gray',表示绘制灰度图,若需要绘制彩色图,可设置其它值,如PRGn或PRGn_r
plt.imshow(img,cmap='PRGn',interpolation='bicubic') #双三次插值算法
plt.xticks([]),plt.yticks([]) #不显示横纵坐标轴
plt.show()
2、如果还要使用matplotlib显示图像,可以改变一下通道顺序。
import cv2
import matplotlib.pyplot as plt
path = r'D:/python/c_vision/lena.jpg'
img1 = cv2.imread(path,1)
b,g,r = cv2.split(img1)
img2 = cv2.merge([r,g,b])
plt.imshow(img2,cmap='PRGn',interpolation='bicubic')
plt.xticks([]),plt.yticks([])
plt.show()