当前位置: 首页 > news >正文

OpenCV 入门教程:图像读取和显示

OpenCV 入门教程:图像读取和显示

  • 导语
  • 一、图像读取
    • 1.1、导入 OpenCV 库
    • 1.2、读取图像文件
    • 1.3、图像读取的返回值
  • 二、图像显示
    • 2.1、创建窗口
    • 2.2、图像显示
    • 2.3、等待按键
    • 2.4、关闭窗口
  • 三、示例应用
  • 总结

导语

在计算机视觉和图像处理领域,读取和显示图像是最基础且常见的操作之一。 OpenCV 作为一个强大的计算机视觉库,提供了丰富的功能来处理图像数据。本文将以读取和显示图像文件为中心,介绍使用 OpenCV 进行图像读取和显示的基本步骤和实例。

😃😄 ❤️ ❤️ ❤️

一、图像读取

在开始使用 OpenCV 读取图像之前,您需要确保已经正确安装了 OpenCV 库。接下来,我们将按照以下步骤进行操作:

1.1、导入 OpenCV 库

Python 脚本中,首先需要导入 OpenCV 库。请在脚本的开头添加以下代码:

import cv2

1.2、读取图像文件

使用 OpenCVimread 函数来读取图像文件。该函数的参数为图像文件的路径,可以是绝对路径或相对路径。例如,要读取名为" image.jpg "的图像文件,可以使用以下代码:

image = cv2.imread('image.jpg')

注意: 请确保图像文件位于当前工作目录或提供了正确的路径。

1.3、图像读取的返回值

imread 函数将图像文件读取为一个多维数组(通常是一个 NumPy 数组),其中包含了图像的像素信息。您可以使用该数组来进行后续的图像处理操作。

二、图像显示

在成功读取图像后,我们可以使用 OpenCV 库来显示图像。请按照以下步骤进行操作:

2.1、创建窗口

在显示图像之前,我们需要先创建一个窗口来容纳图像。可以使用 OpenCVnamedWindow 函数来创建窗口。例如,使用以下代码创建一个名为" Image Display "的窗口:

cv2.namedWindow('Image Display')

2.2、图像显示

使用 OpenCVimshow 函数来显示图像。该函数的第一个参数为窗口的名称(与之前创建的窗口名称相对应),第二个参数为要显示的图像。例如,使用以下代码将读取的图像显示在窗口中:

cv2.imshow('Image Display', image)

2.3、等待按键

显示图像后,使用 OpenCVwaitKey 函数来等待用户按键。该函数将等待用户按下任意键后继续执行程序。例如,使用以下代码等待用户按键后关闭窗口:

cv2.waitKey(0)

2.4、关闭窗口

使用 OpenCVdestroyAllWindows 函数来关闭所有已创建的窗口。例如,使用以下代码关闭之前创建的窗口:

cv2.destroyAllWindows()

三、示例应用

现在,我们来看一个完整的示例应用,将图像读取和显示结合起来:

import cv2# 读取图像文件
image = cv2.imread('image.jpg')# 创建窗口
cv2.namedWindow('Image Display')# 显示图像
cv2.imshow('Image Display', image)# 等待按键
cv2.waitKey(0)# 关闭窗口
cv2.destroyAllWindows()

这个示例应用将打开名为" image.jpg "的图像文件,并在一个窗口中显示图像。用户可以按下任意键来关闭窗口。
展示:

在这里插入图片描述

总结

通过本文的介绍,您已经学会了使用 OpenCV 库进行图像读取和显示的基本步骤。通过读取和显示图像,您可以进一步探索和实践 OpenCV 的各种图像处理和计算机视觉功能。祝你在使用 OpenCV 进行图像处理的旅程中取得成功!

http://www.lryc.cn/news/94515.html

相关文章:

  • 什么是GPT?
  • 如何通过浏览器配置哪些网页不走代理服务器,Lantern开启后部分网页打不开了
  • Redis常见面试题
  • 应用零信任原则:案例研究和现场经验教训
  • RabbitMQ系列(14)--Topics交换机的简介与实现
  • 解决PyInstaller打包selenium脚本时弹出driver终端窗口
  • 基于卷积神经网络VGG的猫狗识别
  • mysql查询语句练习总结(涵盖所有sql语法)
  • TypeScript 中 any、unknown、never 和 void 有什么区别?
  • 算法Day60 | 84.柱状图中最大的矩形,刷题总结
  • python实现pdf转换为word文档,尽量保持格式不变
  • TCP / IP 网际层的 4 个重要协议
  • MySQL阶段DAY20(附笔记)
  • 考场作弊行为自动抓拍告警算法 yolov7
  • 在Linux中安装RabbitMQ
  • electron 单个实例控制以及日志输出
  • 基于matlab使用AprilTag标记进行相机校准(附源码)
  • 计算机网络————运输层
  • 【雕爷学编程】Arduino动手做(154)---AFMotor电机扩展板模块
  • 【RPC】—Protobuf入门
  • 【⑩MySQL】:表管理,让数据管理不再困难
  • Springboot项目使用原生Websocket
  • 在Vue 3中如何实现服务端渲染(SSR)
  • 【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计
  • CodeMirror 对 XML 文档熟悉及元素控制自定义
  • Jetpack - ViewModel
  • 【新版系统架构】第十三章-层次式架构设计理论与实践
  • 剖析Linux文件系统
  • 简介Maven结构与配置方法
  • 好用的网址6