0
点赞
收藏
分享

微信扫一扫

使用OpenCV如何读入一幅图像,怎样显示一幅图像,以及如何保存一 幅图像

4 图片

在这里插入图片描述

目标

  • 在这里你将学会怎样读入一幅图像,怎样显示一幅图像,以及如何保存一幅图像
  • 你将要学习如下函数:cv2.imread(),cv2.imshow(),cv2.imwrite()
  • 如果你愿意的话,我会叫你如何使用 Matplotlib 显示一幅图片

4.1 读入图像

使用函数 cv2.imread() 读入图像。这幅图像应该在此程序的工作路径,
或者给函数提供完整路径,
第二个参数是要告诉函数应该如何读取这幅图片。

  • cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,
    这是默认参数。
  • cv2.IMREAD_GRAYSCALE:以灰度模式读入图像

cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道

1 # -*- coding: utf-8 -*-
2 """
3 Created on Tue Dec 31 19:16:05 2013
4
5 @author: duan
6 """
7
8 import numpy as np
9 import cv2
10
11 # Load an color image in grayscale
12 img = cv2.imread('messi5.jpg',0)

4.2 显示图像

使用函数 cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。

窗口屏幕截图将会像以下的样子 (in Fedora-Gnome machine):
在这里插入图片描述
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限期的等待键盘输入。它也可以被用来检测特定键是否被按下,例如按键 a 是否被按下,这个后面我们会接着讨论。

cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删除的窗口名。

代码如下:

1 # -*- coding: utf-8 -*-
2 """
3 Created on Wed Jan 1 20:49:33 2014
4
5 @author: duan
6 """
7 import numpy as np
8 import cv2
9
10 cv2.namedWindow('image', cv2.WINDOW_NORMAL)
11 cv2.imshow('image',img)
12 cv2.waitKey(0)
13 cv2.destroyAllWindows()

4.3 保存图像

使用函数 cv2.imwrite() 来保存一个图像。首先需要一个文件名,之后才是你要保存的图像。

4.4 总结一下

下面的程序将会加载一个灰度图,显示图片,按下’s’键保存后退出,或者按下 ESC 键退出不保存。

1 # -*- coding: utf-8 -*-
2 """
3 Created on Wed Jan 1 20:49:33 2014
4
5 @author: duan
6 """
7 import numpy as np
8 import cv2
9
10 img = cv2.imread('messi5.jpg',0)
11 cv2.imshow('image',img)
12 k = cv2.waitKey(0)
13 if k == 27: # wait for ESC key to exit
14 cv2.destroyAllWindows()
15 elif k == ord('s'): # wait for 's' key to save and exit
16 cv2.imwrite('messigray.png',img)
17 cv2.destroyAllWindows()
举报

相关推荐

0 条评论