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

【CV】图像基本操作——①图像的IO操作

OpenCV基本操作

图像基本操作

图像的IO操作

解决问题:如何读取图像,如何显示图像,如何保存图像

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

参数:

  • 要读取的图像

  • 读取方式的标志

    • cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数

    • cv.IMREAD*GRAYSCALE:以灰度模式加载图像

    • cv.IMREAD_GRAYSCALE:包括alpha通道的加载图像模式。

      可以使用1、0或-1来依次代替上面三个标志
      
  • 参考代码:

import numpy as np
import cv2 as cv
# 以灰度图的形式读取图像
img = cv.imread('messi5.jpg', 0)

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

显示图像
  1. API
cv.imshow()

参数:

  • 显示图像的窗口名称,以字符串类型表示
  • 要加载的图像

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

另外,我们也可使用matplotlib对图像进行展示。

  • 参考代码
# opencv中显示
cv.imshow()
cv.waitKey(0)
# matplotlib中显示
plt.imshow(img[:, :, ::-1])
保存图像
  1. API
cv.imwrite()

参数:

  • 文件名,要保存在哪里
  • 要保存的图像
  1. 参考代码
cv.imwrite('messigray.png', img)
总结

我们通过加载灰度图像,显示图像,如果按’s’并退出则保存图像,或者按ESC键直接退出而不保存。

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
# 读取图像
img = cv.imread('messi5.jpg', 0)
# 显示图像
# 用opencv展示图象
img = cv.imshow('image', img)
# 用matplotlib展示图象
plt.imshow(img[:, :, ::-1])
plt.title('匹配结果'),plt.xticks([]),plt.yticks([])
plt.show()
k = cv.waitkey(0)
# 保存图像
cv.imwrite('messigray', img)
http://www.xdnf.cn/news/18925.html

相关文章:

  • XC95144XL-10TQG144I Xilinx XC9500XL 高性能 CPLD
  • 从0到1:用 Qwen3-Coder 和 高德MCP 助力数字文旅建造——国庆山西游
  • 我的小灶坑
  • Web程序设计
  • 《 nmcli网络管理学习》
  • 28 FlashAttention
  • sudo 升级
  • 牛客周赛 Round 106(小苯的方格覆盖/小苯的数字折叠/ 小苯的波浪加密器/小苯的数字变换/小苯的洞数组构造/ 小苯的数组计数)
  • “华生科技杯”2025年全国青少年龙舟锦标赛在海宁举行
  • Linux网络套接字
  • 0825 http梳理作业
  • 自由学习记录(88)
  • springboot中操作redis的步骤
  • 将盾CDN:高防CDN和游戏盾有什么区别?
  • 【数据结构】LeetCode160.相交链表 138.随即链表复制 牛客——链表回文问题
  • SQL每日一练
  • 盲盒经济新风口:盲盒抽谷机小程序系统开发全解析
  • 深度学习-----《PyTorch神经网络高效训练与测试:优化器对比、激活函数优化及实战技巧》
  • Telematics Control Unit(TCU)的系统化梳理
  • 数据结构:红黑树(Red-Black Tree)
  • git开发基础流程
  • Springboot应用如何与SkyWalking集成,并使用Docker进行发布
  • Python爬虫实战:研究amazon-scrapy,构建亚马逊电商数据采集和分析系统
  • 扣子智能体商业化卡在哪?井云系统自动化交易+私域管理,闭环成交全流程拆解
  • 小程序开发指南(四)(UI 框架整合)
  • 机器视觉的3C玻璃盖板丝印应用
  • three.js+WebGL踩坑经验合集(8.3):合理设置camera.near和camera.far缓解实际场景中的z-fighting叠面问题
  • 如何在IDEA中使用Git
  • MyBatis-Plus 快速入门 -常用注解
  • 使用阿里云实现短信注册