四、计算机视觉-图像的读取显示与保存

这篇具有很好参考价值的文章主要介绍了四、计算机视觉-图像的读取显示与保存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

图像是计算机视觉领域的基本数据载体,理解图像的读取、显示与保存是进行图像处理、分析和识别的第一步。
本节课我们不光是为了学习处理图像的那些方法如何使用,更重要的是从本节课学习能让你对计算机世界中的图像有一个更清晰的认识。
在本课程中,我们将学习如何使用Matplotlib和OpenCV库来实现图像的读取、显示和保存操作。我们将从最基本的图像处理开始,介绍图像读取的方法,讨论图像的通道顺序,然后深入探讨图像的显示与可视化,以及图像的保存格式和质量参数。上节课我们探讨了计算机世界中图像的概念,而本节课我们将通过代码实际展示图像数据,从而深入了解图像处理的实际操作过程。

一、导入包

import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

cv2:是opencv,opencv提供了丰富的图像处理和计算机视觉算法,通过它可以调用OpenCV中的各种函数来实现图像读取、处理、分析等操作。
numpy:提供了对多维数组的处理各种方法,我们可以用他处理图像的数组数据
matplotlib:用于显示图像、绘制图表和可视化数据。方便我们一会绘图的展示。
%matplotlib inline:这行意思是我们展示图直接在jupyter中显示,而不是在打开一个外部的窗口显示我们的图片,这样方便我们查看。另外说明一下在jypyter中每行代码都需要我们单独去执行一下,如果上面代码不执行 我们直接执行下面的代码就会出错。执行代码的快捷键是shift+enter

二、图像的读取

image = cv2.imread(filename, flags)
flags 是一个可选参数,用于指定读取图像的方式。常用的取值有:
cv2.IMREAD_COLOR:以彩色模式读取图像(默认)。
cv2.IMREAD_GRAYSCALE:以灰度模式读取图像。
cv2.IMREAD_UNCHANGED:保持图像原有的通道数,包括 alpha 通道。
imread() 函数会返回一个 numpy 数组,代表读取的图像数据。如果指定的文件路径不存在或者文件格式不正确,imread() 函数会返回一个空的 numpy 

比如我本地有一个图片 我可以使用下面代码读取我本地的图片

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

我们查看下img的内容:

四、计算机视觉-图像的读取显示与保存,计算机视觉,人工智能,计算机视觉,人工智能
可以看到返回的数据是一个三维数组,其中的1维数组表示一个像素点,比如70,88,111就是表示第一个像素,结合我们上面一节的课程,我们知道每个像素点是由RGB三个值组成的。这个三维数 组表示,图像的高度,即像素的行数和像素的宽度 ,即像素的列数。
还有图片的通道,我们可以通过cv2.shape看下图像维度信息
显示:

(480, 320, 3)  #这个代表高度是480像素,宽度是320像素,是3个通道

三、图片的显示

1、在jupyter中显示图片

我们显示图片看一下:

plt.imshow(img)

四、计算机视觉-图像的读取显示与保存,计算机视觉,人工智能,计算机视觉,人工智能

我们发现图片显示的有点奇怪,不是我的原图。这是为什么呢?因为我们通过opencv导入的图片默认的通道是BGR,而matplotlib处理图片默认则是以RGB的方式,所以读取和显示的通道顺序反了导致显示的图片不正常,我们需要手动转换一下通道顺序,我们吧opencv读取的图片通道顺序改为RGB这样就能和matplotlib一致了,

img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

我们查看下转换后的图片,现在显示的就正常了
四、计算机视觉-图像的读取显示与保存,计算机视觉,人工智能,计算机视觉,人工智能

2、在窗口中显示图片

    cv2.imshow('demo',img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

上面代码可以在窗口中显示图片 waitkey就是等待我们输入,也就是我们按了任意键之后执行后面的代码 销毁窗口,因为这个使用cv2显示的,读取也是cv2,所以不用对通道进行转换 就能正常显示。

四、图片的保存

当我们对图像做了一系列处理之后,想把图片保存出来,可以使用以下方法
1、使用opencv保存:

cv2.imwrite('output_image.jpg', img)

2、使用Matplotlib保存文章来源地址https://www.toymoban.com/news/detail-830844.html

# 将 BGR 转换为 RGB
image_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 保存图像(Matplotlib 保存的图像通道顺序是 RGB)
plt.imsave('output_image.jpg', image_rgb)

到了这里,关于四、计算机视觉-图像的读取显示与保存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机视觉 | 图像分类】arxiv 计算机视觉关于图像分类的学术速递(6月 29 日论文合集)

    基于多示例学习的全幻灯片图像分类的伪袋混合增强 论文地址: 鉴于十亿像素图像建模的特殊情况,多实例学习(MIL)已成为全幻灯片图像(WSI)分类最重要的框架之一。 在当前实践中,大多数 MIL 网络在训练中经常面临两个不可避免的问题:i)WSI 数据不足,ii)神经网络

    2024年02月11日
    浏览(57)
  • 【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 6 日论文合集)

    面向跨域语义分割的提示扩散表示法 虽然最初设计用于图像生成,扩散模型最近已证明提供了优秀的预训练的特征表示语义分割。这一结果引起了兴趣,我们开始探索扩散预训练表示如何推广到新的领域,这是任何表示的关键能力。我们发现,扩散预训练实现了非凡的领域泛

    2024年02月12日
    浏览(58)
  • 【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(8 月 30 日论文合集)

    Novis:端到端近在线视频实例分割实例 直到最近,视频实例分割(VIS)社区在以下共同信念下操作:离线方法通常优于逐帧在线处理。然而,最近在线方法的成功质疑这种信念,特别是对于具有挑战性和长视频序列。我们将这项工作理解为对最近观察结果的反驳,并呼吁社区

    2024年02月09日
    浏览(74)
  • 人工智能在计算机视觉中的应用与挑战

    引言 计算机视觉是人工智能领域的一个重要分支,旨在让计算机能够像人一样理解和解释视觉信息,实现图像和视频的自动识别、理解和分析。计算机视觉技术已经在许多领域产生了深远的影响,如人脸识别、自动驾驶、医学影像分析等。本篇博客将深入探讨人工智能在计算

    2024年02月14日
    浏览(62)
  • 计算机视觉——图像视觉显著性检测

    目录 系列文章目录 零、问题描述 一、图像显著性检测 1.定义 2.难点 二、常用评价标准和计算方法 1.综述 2.ROS曲线详述 2.1 混淆矩阵 2.2 ROC曲线简介 2.3 ROC曲线绘制及其判别标准 2.4 ROC曲线补充 三、Fast and Efficient Saliency (FES) 1.算法简介 2.项目导入与解析 3.FES注意预测实践 4.评价

    2024年02月03日
    浏览(57)
  • 计算机视觉 -- 图像分割

    引入问题: 在自动驾驶系统中,如果用之前的检测网络(例如Faster-Rcnn),试想,倘若前方有一处急转弯,系统只在道路上给出一个矩形标识,这样一来车辆很有可能判断不出是该避让还是径直上前,车祸一触即发。因此,对新技术的诉求应运而生,该技术须能识别具体路况

    2024年02月11日
    浏览(65)
  • 计算机视觉--图像拼接

    单应性变换是指一个平面上的点通过一个矩阵变换映射到另一个平面上的点,这个变换矩阵是一个 3 × 3 3 times 3 3 × 3 的矩阵,称为单应性矩阵。单应性变换可以分为仿射变换和投影变换两种类型。 在单应性变换中,仿射变换是其中一种特殊的变换。仿射变换是指在变换前后

    2024年02月04日
    浏览(53)
  • 计算机视觉----图像拼接

     一.简介 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术,它将多幅图像拼接成一幅大尺度图像或360度全景图,接可以看做是场景重建的一种特殊情况,其中图像仅通过平面单应性进行关联。图像拼接在运动检测和跟踪,增强现实,分辨率增强,视频压缩和图

    2024年02月09日
    浏览(53)
  • 计算机视觉的图像标注与视觉任务

           计算机视觉是一种利用计算机和数学算法来模拟人类视觉的技术,可以应用于许多领域。以下是计算机视觉的八大应用:  图像识别:利用计算机视觉技术,可以对图像进行分类、识别和分割,从而实现自动化的图像处理。 视频监控:利用计算机视觉技术,可以对视

    2024年02月16日
    浏览(44)
  • 计算机视觉(三)图像拼接

    1.1 流程 要拼接多张图像,就一定要找到他们之间的映射关系,流程如下: 得到映射关系,就能进行拼接: 简而言之,拼接两张图像,就是找到他们的特征点,根据这些特征点: 1.2 映射与处理 找到两张图像的像素点对应关系,然后把第二张图像映射到在第一张图像的坐标系

    2024年02月05日
    浏览(92)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包