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

OpenCV - 图像的IO操作

目录

1. 读取图像 - cv.imread()

2. 显示图像 - cv.imshow()

3. 保存图像 - imwrite()

4. 总结


1. 读取图像 - cv.imread()

在OpenCV图像处理中,API指的是OpenCV库提供的应用程序接口,本质是一系列封装好的函数、类或方法,专门用于调用OpenCV的图像处理的能力,无需开发者手动编写底层算法。简单来说,这些API就是OpenCV给开发者的“工具按钮”。

读取图像要使用的API为:

cv.imread('图片路径', 标志)

参数1:要读取图像的路径

参数2:读取方式的标志

       1. cv.IMREAD_COLOR 或 1:以彩色模式加载图像,任何图像的透明度都将被忽略,这里默认参数

        2. cv.IMREAD_GRAYSCALE 或 0:以灰度模式加载图像

        3. cv.IMREAD_UNCHANGED 或 -1:按原样读取,包括alpha通道的加载图像模式

        可以使用1、0、-1来分别代表上面三个标志

参考代码:

import numpy as np
import cv2 as cv
# 以灰度形式读取图像
img_gray = cv.imread('test1.jpg', 0)
# 以彩色模式读取
img_color = cv.imread('test1.jpg', 1)

注意:如果加载的路径有错误,不会报错,会返回一个None值

2. 显示图像 - cv.imshow()

这个函数会创建一个窗口,并在里面显示图片矩阵

显示图像要使用的API为:

cv.imshow('窗口名称', 图像矩阵)

参数1:显示图像的窗口名称,以字符串类型表示

参数2:要加载的图像

注意:在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。

参考代码:

#opencv中显示
cv.imshow('image', img)
cv.waitKey(0)
cv.destroyAllWindows()

1. cv2.waitKey(0):这是一个键盘绑定函数,非常重要!

         参数 0 表示程序会无期限等待用户的按键操作

        • 如果你写成 cv2.waitKey(5000),则表示等待5秒(5000毫秒)后自动关闭窗口。

2. cv2.destroyAllWindows():销毁我们创建的所有窗口。这是一个好的编程习惯,用来清理内存。

为什么必须要有waitKey
因为没有它,窗口会一闪而过,你根本来不及看。waitKey让程序暂停,等你按下任意键后再继续执行后面的销毁命令。

3. 保存图像 - imwrite()

这个函数将处理后的图像矩阵(NumPy数组)保存成一个图片文件。

保存图像要使用的API为:

cv.imwrite('保存的文件名', 图像矩阵)

参数1:文件名要保存在哪里,OpenCV会根据你指定的扩展名(如.jpg.png)来决定保存的格式。

参数1:要保存的图像,你要保存的那个图像变量(比如我们刚才读进来的img,或者处理过的灰度图img_gray)。

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

4. 总结

import numpy as np
import cv2 as cv# 1. 读取图像
img = cv.inread('test1.jpg', 0)# 2. 显示图像
cv.imshow('image', img)
cv.waitKey(0)# 3. 保存图像
cv.imwrite('test2.png', img)# 最后关闭所有窗口
cv.destroyAllWindows()


文章转载自:

http://QuiwaYjO.mpnff.cn
http://MwQyMCmn.mpnff.cn
http://0K8uQLKm.mpnff.cn
http://WhGMDcsN.mpnff.cn
http://NJDZHHUA.mpnff.cn
http://YMhBsweY.mpnff.cn
http://j6xOhvZO.mpnff.cn
http://pjcbHm5b.mpnff.cn
http://pnYfxAwm.mpnff.cn
http://9Dpt1gn6.mpnff.cn
http://XSuaVPuo.mpnff.cn
http://UPWcS8aI.mpnff.cn
http://jjP3U3Wt.mpnff.cn
http://HAhiqR5Y.mpnff.cn
http://A4PPDWPa.mpnff.cn
http://TxTZWQES.mpnff.cn
http://wDB7i2nv.mpnff.cn
http://WNk8Aygu.mpnff.cn
http://oJe9XSob.mpnff.cn
http://diVQ2A98.mpnff.cn
http://KNZ8JXFD.mpnff.cn
http://xmtvMqin.mpnff.cn
http://HcFXlM0G.mpnff.cn
http://HSxmppAd.mpnff.cn
http://6ETrLwNl.mpnff.cn
http://sL72PjDc.mpnff.cn
http://ZKxHOGFV.mpnff.cn
http://TK3tC9QX.mpnff.cn
http://dzezBUYm.mpnff.cn
http://I2gOUaba.mpnff.cn
http://www.dtcms.com/a/370177.html

相关文章:

  • Windows 11 手动下载安装配置 uv、配置国内源
  • Wisdom SSH 是一款搭载强大 AI 助手的工具,能显著简化服务器配置管理流程。
  • Linux基础知识(二)
  • Redis 在互联网高并发场景下的应用--个人总结
  • 算法题-链表03
  • 版本发布流程手册:Release分支规范与Bug分级标准全解析
  • 目标检测中的池化层
  • react native 出现 FATAL EXCEPTION: OkHttp Dispatcher
  • HttpClient、OkHttp 和 WebClient
  • js逆向Webpack模块加载机制解析:从数组到JSONP
  • cuda-NCCL笔记(1)-- 初步了解使用NCCL
  • Lua 面向对象编程
  • 微信小程序(uniapp)实现连接蓝牙
  • 从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
  • 微前端框架性能对比与选型指南:从理论到实践
  • pyAutoGUI 模块主要功能介绍-(1)鼠标功能
  • Maven的介绍及基本使用
  • 使用 C# .NETCore 实现MongoDB
  • 2025年渗透测试面试题总结-55(题目+回答)
  • %前置模糊查询优化
  • 【架构艺术】变更风险防控架构嵌入决策降噪模块的方法
  • ElmentUI之DateTimePicker 日期时间选择器
  • RabbitMQ 入门与 Go 语言实践
  • [Upscayl图像增强] Electron主进程命令 | 进程间通信IPC
  • 80(HTTP默认端口)和8080端口(备用HTTP端口)区别
  • AI模型测评平台工程化实战十二讲(第一讲:从手工测试到系统化的觉醒)
  • FreeMarker快速入门指南
  • python的数据结构
  • Spark 中spark.implicits._ 中的 toDF和DataFrame 类本身的 toDF 方法
  • 基于Spark的中文文本情感分析系统研究