目标:
- 1.读取图像
- 2.显示图像
- 3.保存图像
- 4.使用Matplotlib显示图像
一、读取图像
读取图像函数:
imread(filename, flags=None)
参数:
filename: 图像所在路径
flag: 指定读取图片的方式
cv.IMREAD_COLOR或1: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
cv.IMREAD_GRAYSCALE或0:以灰度模式加载图像
cv.IMREAD_UNCHANGED或-1:加载图像,包括alpha通道(用图片原格式打开)
示例:
# 1.读取图像
import cv2
# 加载灰度图像
img = cv2.imread("image/1.jpg", 0)
二、显示图像
显示图像函数:
imshow(winname, mat)
参数:
winname: 窗口名称
mat: 需要显示的图片对象
示例:
# 2.显示图像
import cv2
img = cv2.imread("image/1.jpg") # 读取图片
cv2.namedWindow("image", cv2.WINDOW_NORMAL) # 自定义一个窗口,并且该窗口的大小可以调整
cv2.imshow("image", img) # 使用"image"窗口显示该图片
cv2.waitKey(0) # 等待键盘输入
cv2.destroyWindow("image") # 销毁指定的窗口
# cv2.destroyAllWindows() # 销毁所有的窗口
一般在imshow()后要使用waitKey()函数,给图像绘制留下时间,不然窗口会出现无响应情况,并且图像无法显示出来。
其他函数分析:
- cv2.namedWindow(winname, flags=None) 创建一个窗口
winname: 窗口名
flags: 窗口的类型,默认是cv.WINDOW_AUTOSIZE。如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。 - cv2.waitKey(0) 一直等待键盘按键,直到键盘按键按下才退出。鼠标放到图片区域,然后按键盘继续向下执行。
cv2.waitKey()是一个键盘绑定函数。它的时间量度是毫秒ms。函数会等待(n)里面的n毫秒,看是否有键盘输入。若有键盘输入,则返回按键的ASCII值。没有键盘输入,则返回-1。 一般设置为0,他将无限等待键盘的输入。 - cv2.destroyAllWindows() 删除窗口。
- cv2.destroyWindow(windowname) 删除指定窗口
展示窗口如下图所示:
三、保存图像
保存图像函数:
imwrite(filename, img, params=None)
参数:
filename: 保存的新图片名称
img: 要保存的图片对象
cv.IMREAD_COLOR或1: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
cv.IMREAD_GRAYSCALE或0:以灰度模式加载图像
cv.IMREAD_UNCHANGED或-1:加载图像,包括alpha通道(用图片原格式打开)
img: 指定读取图片的方式
示例:
# 3.写入图像
import cv2
img = cv2.imread("image/1.jpg") # 读取彩色图
# 色彩空间转换
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将彩色图转化为灰度图
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 将彩色图转化为HSV图
cv2.imwrite("1_gray.jpg", gray) # 保存灰度图片
cv2.imwrite("1_hsv.jpg", hsv) # 保存HSV图片
其他函数:
- cvtColor(src, code, dst=None, dstCn=None) 色彩空间转换
src:原始图片
code:转换类型。有cv2.COLOR_BGR2RGB、cv2.COLOR_BGR2RGBA、cv2.COLOR_BGR2GRAY、cv2.COLOR_BGR2HSV、cv2.COLOR_BGR2YUV等
四、使用Matplotlib显示图像
示例:
# 4.使用MatPlotlib显示图片
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("image/1.jpg", cv2.IMREAD_GRAYSCALE)
plt.imshow(img, cmap="gray") # cmap指定颜色映射为"gray",即以灰度图的形式显示该图片
plt.xticks([]), plt.yticks([]) # 隐藏x轴和y轴上的刻度
plt.show() # 显示图片
网友评论