Skip to content

读入图像

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()