图像的读取与显示
1.利用Opencv
import cv2 as cv #安装Opencv库函数
img=cv.imread('F:/StiTest/img/lena512color.tiff') #指定图像路径
cv.imshow('lena',img) #第一个参数:窗口名字,第二个参数:显示图像
cv.waitKey(0) #刷新图像,参数表示刷新频率,单位是毫秒,‘0’表示无限延时
cv.destroyAllWindows() #关闭窗口
cv.imshow是和cv.waitKey(),cv.destroyAllWindows()配套使用。
cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(n)里面的n毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1.一般设置为0,他将无限等待键盘的输入。
cv.destroyAllWindows():删除窗口,()里不指定任何参数,则删除所有窗口
例如:
img=cv.imread('F:/StiTest/img/lena512color.tiff')
cv.imshow('lena',img)
idKey=cv.waitKey(0)
if idKey==27: #若按下esc键,关闭所有窗口
cv.destroyAllWindows()
结果:
2.利用matplotlib
首先安装matplotlib库
import matplotlib.pyplot as plt
img=cv.imread('F:/StiTest/img/lena512color.tiff')
plt.imshow(img)
plt.show()
结果:
图象颜色发生变化,这是因为cv在读取图像时是以BGR顺序读入的,而plt在显示时是以RGB顺序显示的,因此,在利用plt显示之前,需要利用cv.cvtColor对图像进行一个变换
img2=cv.cvtColor(img,cv.COLOR_BGR2RGB) #将BGR转换为RGB
plt.imshow(img2)
plt.show()
结果:
如果是想显示灰度图,首先将图像转换成灰度图,可以在读取时直接读成灰度图
img = cv.imread('F:/StiTest/img/lena512color.tiff',0) #‘0’:读成灰度图
或者利用cv.cvtColor转换
img1 = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
显示时需要使用cmap
plt.imshow(img1, cmap='gray')
plt.show()
结果:
3.利用PIL
代码:
from PIL import Image #安装PIL库
pil_img=Image.open('F:/StiTest/img/lena512color.tiff')
pil_img.show()
结果:
\