opencv(4.5.3)-python(二)--图像入门

2022-07-04 14:15:14 浏览数 (1)

1.1 图像入门

原作者:Ana Huamán

翻译及校对:cvtutorials.com

目标

在本教程中,你将学习:

  • • 从文件中读取图像。
  • • 在OpenCV窗口中显示一个图像
  • • 将图像写入文件。

源代码

代码语言:javascript复制
import cv2 as cv
import sys
img = cv.imread(cv.samples.findFile("starry_night.jpg"))
if img is None:
    sys.exit("Could not read the image.")
cv.imshow("Display window", img)
k = cv.waitKey(0)
if k == ord("s"):
    cv.imwrite("starry_night.png", img)

解释

作为第一步,OpenCV的python库被导入。正确的做法是另外给它起一个名字cv,在下面的内容中,它被用来引用这个库。

代码语言:javascript复制
import cv2 as cv
import sys

现在,让我们来分析一下代码。作为第一步,我们从OpenCV样本中读取图像 "starry_night.jpg"。为了做到这一点,我们调用了imread函数,使用第一个参数指定的文件路径来加载图像。第二个参数是可选的,它指定了我们想要的图像的格式。这可能是:

  • • IMREAD_COLOR以BGR 8位格式加载图像。这是这里使用的默认值。
  • • IMREAD_UNCHANGED 载入原始图像(包括alpha通道,如果存在的话)。
  • • IMREAD_GRAYSCALE 载入图像灰度图。

在读入图像后,数据将被存储在一个Mat对象中。

代码语言:javascript复制
img = cv.imread(cv.samples.findFile("starry_night.jpg"))

之后,将执行检查,以确定图像是否被正确加载。

代码语言:javascript复制
if img is None:
    sys.exit("Could not read the image.")

然后,通过调用imshow函数来显示图像。第一个参数是窗口的标题,第二个参数是将被显示的Mat对象。

因为我们希望窗口一直显示到用户按下一个键(否则程序会很快结束),所以我们使用waitKey函数,它的唯一参数是它应该等待用户输入多长时间(以毫秒为单位)。零意味着永远等待。返回值是被按下的键。

代码语言:javascript复制
cv.imshow("Display window", img)
k = cv.waitKey(0)

最后,如果按的是 "s "键,图像将被写入一个文件中。为此调用了imwrite函数,它有文件路径和Mat对象作为参数。

代码语言:javascript复制
if k == ord("s"):
    cv.imwrite("starry_night.png", img)

0 人点赞