python如何读入、显示、保存图像
使用opencv
读入、显示、保存图像。示例代码是加载一张原图,显示图片,键盘按下“s”则保存图片,按下其他键则销毁图像显示窗口。
学会三个函数的使用:
cv2.imread
、cv2.imshow
、cv2.imwrite
。
python
# -*- coding:utf-8 -*-
import numpy as np
import cv2
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_UNCHANGED)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
key = cv2.waitKey(0)
if key == ord('s'):
cv2.imwrite('D:/img/test/0005.jpg', img)
else:
cv2.destroyWindow('image')
读入图像
img = cv2.imread('D:/img/test/000.jpg')
打开原图。
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_GRAYSCALE)
以灰度模式读入图像。
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_COLOR)
读入彩色图像,图像的透明度会忽略。
img = cv2.imread('D:/img/test/000.jpg', cv2.IMREAD_UNCHANGED)
读入原图。
读入图像的返回值
print type(img)结果为<type 'numpy.ndarray'>
,可见是个多维数组。
opencv不会提示你图片的路径是否错误,若print img结果为None,则表明图像路径是错的。若结果是一个矩阵数组,则表明路径正确。
显示图像
cv2.imshow('image', img)
在窗口显示图像,图像的名字是image,img参数是我要显示的图像,可以同时打开多个图像显示窗口,但他们的名字必须是不同的。
这个时候的图像大小默认是原始图像的大小,若想窗口大小可调节,使用cv2.namedWindow()
即可。
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
image窗口的大小可以调节。
cv2.namedWindow('image', cv2.WINDOW_AUTOSIZE)
默认的窗口大小,若第二个参数不填写,默认的就是图像大小且不可调节。
键盘绑定函数,cv2.waitKey(0),设置参数是0,表示无限期等待键盘输入,若为其他值,表示在该值得毫秒时间内等待键盘输入,若没有输入,则返回-1,若有输入,则返回输入键的ASCII值。
保存图像
cv2.imwrite('D:/img/test/0002.jpg', img)
第一个参数是保存的图像的路径,第二个参数是要保存的图像。
删除已建立的窗口
cv2.destroyAllWindows()
销毁所有窗口。
cv2.destroyWindow('image')
销毁特定窗口,参数是你要销毁的窗口名称。
其他
ord()
和chr()
函数:
ord()函数的参数是一个ASCII字符,返回值是对应的十进制整数,也就是ASCII的值。
chr()函数的参数是0 - 256 的一个整数,返回值是当前整数对应的ASCII字符。
推荐课程:Python快速教程之从入门到精通