OpenCV-Python|Gui模块 — 读取、显示、保存图像

OpenCV-Python|Gui模块 — 读取、显示、保存图像

前言

OpenCV-Python Gui模块主要是实现一些图形用户接口,例如创建窗口显示图像、画图、鼠标事件等。

读取图像

使用cv.imread()函数读取图像,第一个参数为图像的相对路径或绝对路径,第二个参数为读取图像的方式:

  • CV.IMREAD_COLOR: 加载彩色图像,忽略透明度通道。默认参数
  • CV.IMREAD_GRAYSCALE: 加载为灰度图
  • CV.IMREAD_UNCHANGED: 加载图像,包括alpha通道
    上面三个参数也可分别用1,0,-1替代。
import numpy as np
import cv2 as cv

# 读取灰度图
img = cv.imread('messi5.jpg', 0)

显示图像

使用cv.imshow()函数在窗口中显示图像。第一个参数是窗口名,字符串类型;第二个参数是图像。

cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

在这里插入图片描述
cv.waitKey()是一个键盘绑定函数。它的参数是毫秒。该函数等待任何键盘事件的指定毫秒数,如果在这段时间内按下键盘,程序就会继续。如果参数是0,则会一直等待按键。也可以用它等于某个值来检测某个特定的按键是否按下。
cv.destroyAllWindows()用来关闭窗口。如果想关闭某个具体的窗口,可以使用cv.destroyWindow(),其参数是窗口名字符串。
如果想先创建一个窗口之后再加载图像,可以使用cv.namedWindow()函数,默认参数是cv.WINDOW_AUTOSIZE,可以自适应窗口大小。如果想调整窗口大小,可以使用cv.WINDOW_NORMAL参数。

cv.namedWindow('image', cv.WINDOW_NORMAL)
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

保存图像

使用cv.imwrite()保存图像。第一个参数是文件名,第二个参数是要保存的图像。

cv.imwrite('messigray.png', img)

这会将图像以PNG格式保存在工作目录下。

小结

下面的程序将一张图片加载为灰度图并显示,如果按下Esc键退出程序,如果按下s键则保存并退出。

import numpy as np
import cv2 as cv

# 读取灰度图
img = cv.imread('messi5.jpg', 0)
cv.imshow('image', img)
k = cv.waitKey(0)
if k == 27:         # 等待ESC键退出
    cv.destroyAllWindows()
elif k == ord('s'): # 等待s键保存并退出
    cv.imwrite('messigray.png', img)
    cv.destroyAllWindows()

参考

https://docs.opencv.org/3.4.2/dc/d2e/tutorial_py_image_display.html.

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你好!OpenCV-Python-Headless是一种无界面的版本,可用于运行在服务器上的计算机视觉应用程序。它的用法和OpenCV-Python类似,但是在使用时不会显示图像。这对于运行在无图形界面的服务器上的应用程序很方便,因为它可以节省资源。 要使用OpenCV-Python-Headless,首先需要安装它。你可以使用pip命令安装: ``` pip install opencv-python-headless ``` 然后,在你的Python代码中导入cv2库,就像使用OpenCV-Python一样: ``` import cv2 ``` 在你的代码中使用OpenCV的功能时,就可以像平常一样使用了。 希望这能帮到你! ### 回答2: opencv-python-headless 是 OpenCVPython 环境中的一个无界面版本,相比于完整版的 OpenCV,它不需要额外安装 GUI 库或对显示器的依赖,因此适用于各种后台或服务器应用。使用 opencv-python-headless,我们可以在无图形界面的环境中对图像和视频进行处理。 要使用 opencv-python-headless,我们首先需要在 Python 中安装它。可以通过 pip 命令来安装: ```python pip install opencv-python-headless ``` 安装完成后,我们可以在 Python 中导入 `cv2` 模块来使用 opencv-python-headless。与完整版的 OpenCV 不同,无界面版本没有图形窗口的显示功能,因此我们需要使用其他方法来检查和显示处理结果。 一种常见的方法是将结果保存图像或视频文件,在需要时再进行查看。我们可以使用 `cv2.imwrite()` 方法将图像保存到指定的路径: ```python import cv2 image = cv2.imread('image.jpg') # 进行图像处理操作 cv2.imwrite('output.jpg', image) ``` 另一种方法是使用 Matplotlib 库来显示图像。Matplotlib 不需要图形界面,可以在 Python 脚本中显示图像: ```python import cv2 import matplotlib.pyplot as plt image = cv2.imread('image.jpg') # 进行图像处理操作 plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)) plt.show() ``` 除了图像处理,opencv-python-headless 还提供了对视频文件的处理功能。我们可以使用 `cv2.VideoCapture()` 来读取视频文件,然后使用 `cv2.VideoWriter()` 来保存处理后的视频。 总之,opencv-python-headless 是一个适用于无界面环境的 OpenCV 版本,通过安装和使用合适的库和方法,我们可以在 Python 中使用它进行图像和视频的处理,并根据需要保存显示处理结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值