day2 - 使用OpenCV进行图像的读取与展示

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

本期将使用OpenCV对图像进行一些基本的了解和操作:主要包含图像的读取、展示和保存,以及查看图像的基本属性,让我们充分的了解图像,为后续图像处理做准备。

完成本期内容,你可以:

  • 会使用OpenCV对图像进行读取、展示、保存等基本操作

  • 学会查看图像的基本属性

若要运行案例代码,你需要有:

  • 操作系统:Ubuntu 16 以上 或者 Windows10

  • 工具软件:VScode 或者其他源码编辑器

  • 硬件环境:无特殊要求

  • 核心库:python 3.6.13, opencv-contrib-python 3.4.11.39,opencv-python 3.4.2.16

    # 比如: opencv安装
    pip install opencv-python==3.4.2.16
    # 如果下载速度特别慢可以指定国内镜像
    pip install opencv-python==3.4.2.16 -i https://pypi.douban.com/simple
    

点击下载源码文章来源地址https://www.toymoban.com/news/detail-460721.html


图像读取

OpenCV中提供的图像读取的函数是 cv2.imread( )。

函数原型: image = cv2.imread(filename, flags)

image 为输出图像。

参数描述如下:

参数 描述
filename 【必需】要读取的图像的完整文件名。
flags 读取图像颜色类型的标记。flags的默认值是1,表示读取的图像是彩色图像,此时的flags可以省略;当flags的值为0时,表示要读取的是灰度图像(如果读取的是彩色图像,也将彩色图像转换为彩色图像对应的灰度图像)

图像展示

OpenCV 中提供的图像展示的函数是 cv2.imshow( )。

函数原型: cv2.imshow(winname, mat)

image 为输出图像。

参数描述如下:

参数 描述
winname 显示图像的窗口名称
mat 要显示的图像

使用 OpenCV 展示图片时,通常需要通过用户键盘输入来关闭窗口,OpenCV 中提供的等待用户按键的函数是cv2.waitKey( )。

函数原型: retval = cv2.waitKey(delay)

retval 为被按下的按键对应的 ASCII 码。

参数描述如下:

参数 描述
delay 等待用户按下键盘上按键的时间,单位是毫秒(ms)。当delay的值为复数、0或者空时,表示无限等待用户按下键盘上的时间。

OpenCV 中提供的用于销毁正在显示图像的窗口的函数是 cv2.destroyAllWindows( )。

函数原型: cv2.destroyAllWindows( )

图像保存

OpenCV 中提供的图像保存的函数是 cv2.imwrite( )。

函数原型:cv2.imwrite(filename, img);

参数描述如下:

参数 描述
filename 保存图像时的完整路径
img 要保存的图像

4.4 获取图像属性

在处理图像的过程中,经常需要获取大小、类型等图像属性。为此,OpenCV 提供了 shape、size 和 dtype 3个属性,具体含义如下:

  • shape:如果是彩色图像,那么获取的是一个包含图像的垂直像素、水平像素和通道数的数组,即(垂直像素,水平像素,通道数);如果是灰度图像,那么获取的是一个包含图像垂直像素和水平像素的数组,即(垂直像素,水平像素)。
  • size:获取的是图像包含的像素个数,其值为 “ 水平像素 × 垂直像素 × 通道数 水平像素\times 垂直像素 \times 通道数 水平像素×垂直像素×通道数 ”。
  • dtype:获取的是图像的数据类型

具体步骤

1. 创建项目结构

创建项目名为使用OpenCV进行图片的展示与保存,项目根目录下新建code文件夹储存代码,新建dataset文件夹储存数据,项目结构如下:

使用OpenCV进行图片的展示与保存             # 项目名称
├── code                               # 储存代码文件
├── dataset                            # 储存数据文件

注:如项目结构已存在,无需再创建。

2. 使用 OpenCV 读取图片并展示

  1. code文件夹下创建img_show.py文件;
  2. 读取dataset文件夹下的flower.jpg图片,并进行展示,标题为 flower ;
  3. 无限等待用户输入按键,按下按键后销毁所有窗口。

代码实现

# 导入OpenCV
import cv2
# 读取彩色图像
img = cv2.imread('../dataset/flower.jpg')
# 展示图像
cv2.imshow("flower",img)
# 等待用户输入
cv2.waitKey(0)
# 销毁所有窗口
cv2.destroyAllWindows()

day2 - 使用OpenCV进行图像的读取与展示

实验效果

3. 使用 OpenCV 读取灰度图片并保存

  1. code文件夹下创建img_save.py文件;
  2. 读取dataset文件夹下的flower.jpg图片,转换为灰度图,并进行展示,标题为flower ;
  3. 将灰度图片以gray_img.jpg 保存至dataset文件夹下;
  4. 无限等待用户输入按键,按下按键后销毁所有窗口。

代码实现

# 导入OpenCV
import cv2
# 读取图像
gray_img = cv2.imread('../dataset/flower.jpg',0)
# 展示图像
cv2.imshow("flower",gray_img)
# 保存图像
cv2.imwrite('../dataset/gary_img.jpg',gray_img)
# 等待用户输入
cv2.waitKey(0)
# 销毁所有窗口
cv2.destroyAllWindows()

day2 - 使用OpenCV进行图像的读取与展示

实验效果

4. 打印图像的属性

  1. code文件夹下创建img_attributes.py文件;
  2. 读取dataset文件夹下的flower.jpg图片;
  3. 打印图像的(垂直像素,水平像素,通道数)、像素数 、数据类型。

代码实现

# 导入OpenCV
import cv2
# 读取彩色图像
img = cv2.imread('../dataset/flower.jpg')
# 打印彩色图像的属性
print('---获取图像flower.jpg的属性---')
print('图像的(垂直像素,水平像素,通道数)',img.shape)
print('图像包含的像素数',img.size)
print('图像的数据类型',img.dtype)
# 实验结果
---获取图像flower.jpg的属性---
图像的(垂直像素,水平像素,通道数) (596, 452, 3)
图像包含的像素数 808176
图像的数据类型 uint8

素,水平像素,通道数)',img.shape)
print(‘图像包含的像素数’,img.size)
print(‘图像的数据类型’,img.dtype)


```python 
# 实验结果
---获取图像flower.jpg的属性---
图像的(垂直像素,水平像素,通道数) (596, 452, 3)
图像包含的像素数 808176
图像的数据类型 uint8

通过调用OpenCV接口,可以实现图像的图像的读取、展示和保存,以及查看图像的基本属性,让我们充分的了解图像,为后续图像处理做准备。在使用OpenCV接口的时候,要清楚接口参数的含义和作用,这样才能够操作图像达到我们想要的效果。

点击下载源码

到了这里,关于day2 - 使用OpenCV进行图像的读取与展示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用OpenCV的cv2.imread函数读取图像介绍

    在计算机视觉和图像处理应用中,读取图像是一个常见的操作。OpenCV是一个广泛使用的图像处理库,它提供了 cv2.imread 函数,用于读取图像。本文将详细介绍如何使用 cv2.imread 函数,包括参数和用法。 首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装OpenCV(如果尚

    2024年02月05日
    浏览(62)
  • cv2.VideoCapture使用,opencv读取摄像头,视频图像

            cv2.VideoCapture()用于读取视频,也可以用于读取摄像头图像。         上面的2种写法,第一种表示读取摄像头,第二种读取视频文件,返回值就是视频数据。         在读取到视频后,可以使用isOpened方法来判断视频是否能够打开,能打开返回True,不能够打

    2024年02月12日
    浏览(71)
  • 【OpenCV实现图像:使用OpenCV进行图像处理之透视变换】

    透视变换(Perspective Transformation)是一种图像处理中常用的变换手段,它用于将图像从一个视角映射到另一个视角,常被称为投影映射。透视变换可以用于矫正图像中的透视畸变,使得图像中的物体在新的视平面上呈现更加规则的形状。 透视变换通常涉及到寻找图像中的特定

    2024年02月03日
    浏览(54)
  • 使用openCV进行图像处理

    使用 openCV进行图像处理,又名:学习计算机视觉理论,做 demo(第3 天) 目录 2.1 图像模糊 2.1.1 均值滤波 2.1.2 中值滤波 2.1.3 高斯滤波 2.1.4 案例实现 2.2 图像锐化 2.2.1 图像锐化简介 2.2.2 案例实现 3.1 OpenCV绘图 3.1.1 使用OpenCV绘制各种图形 3.1.2 案例实现 3.2 图像的几何变换 3.2.1 几

    2024年01月22日
    浏览(51)
  • 【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

    在图像处理中,经常需要进行与物体轮廓相关的操作,比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息,通常使用OpenCV的findContours函数。然而,一旦获得轮廓信息后,可能会发现轮廓的顺序是无序的,如下图左侧所示: 在这个图中,每个轮廓都被找到,但它们的

    2024年02月03日
    浏览(34)
  • 使用opencv对图像进行透视变换

    一.什么是透视变换 透视变换就是透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。简单的来说就是

    2024年02月08日
    浏览(42)
  • 谈谈如何使用 opencv 进行图像识别

    原文由hakaboom发表于TesterHome社区,点击原文链接可与作者直接交流。 从18年开始,我接触了叉叉助手(平台已经被请喝茶了),通过图色识别,用来给常玩的游戏写挂机脚本,写了也有两三年.也算是我转行当游戏测试的理由. 去年11月,也是用了这身技术,混进了外包,薪资还不错,属于是

    2024年02月10日
    浏览(47)
  • 入门:使用 OpenCV 进行图像处理

    介绍 图像处理是计算机视觉的一个分支,它使用各种算法来处理和分析数字图像。它涉及使用数学或统计操作来为许多应用修改图像,包括但不限于医学和卫星图像以及数字摄影。本文探讨了图像处理的基础知识和该领域中使用的一些技术。 目录 图像处理基础 图像处理的应

    2024年02月08日
    浏览(53)
  • 如何使用OpenCV库进行图像检测

    import cv2 # 加载Haar级联分类器 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + \\\'haarcascade_frontalface_default.xml\\\') # 读取输入图像 img = cv2.imread(\\\'input_image.jpg\\\') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用Haar级联分类器进行人脸检测 faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors

    2024年02月16日
    浏览(35)
  • Java使用OpenCV进行图像操作

    OpenCV(开源计算机视觉库)是在BSD(开源协议)许可下发布的。它是一个高度优化的库,专注于实时应用程序。它具有C ++,Python和Java接口,支持Windows,Linux,Mac OS,iOS和Android。 OpenCV是一个开源的计算机视觉库,它提供了一系列丰富的图像处理和计算机视觉算法,包括图像读取

    2024年02月09日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包