Python图像处理

508 阅读1分钟

图像的读取与显示

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

结果:image-20211118205022011.png

2.利用matplotlib

首先安装matplotlib库

import matplotlib.pyplot as plt
img=cv.imread('F:/StiTest/img/lena512color.tiff')
plt.imshow(img)
plt.show()

结果:

image-20211118204912987.png 图象颜色发生变化,这是因为cv在读取图像时是以BGR顺序读入的,而plt在显示时是以RGB顺序显示的,因此,在利用plt显示之前,需要利用cv.cvtColor对图像进行一个变换

img2=cv.cvtColor(img,cv.COLOR_BGR2RGB)  #将BGR转换为RGB
plt.imshow(img2)
plt.show()

结果:

image-20211118205549372.png 如果是想显示灰度图,首先将图像转换成灰度图,可以在读取时直接读成灰度图

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

结果:

image-20211118212835273.png

3.利用PIL

代码:

from PIL import Image    #安装PIL库
pil_img=Image.open('F:/StiTest/img/lena512color.tiff')
pil_img.show()

结果:

image-20211118214043490.png \