百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

OpenCV-1: 读取图片,显示图片,保存图片

liuian 2025-03-12 16:45 23 浏览

目标1

在这里,将学习如何读取图像,如何显示图像以及如何将其保存回去 将学习以下功能:

  • cv2.imread()
  • cv2.imshow()
  • cv2.imwrite()
  • 如何使用Matplotlib显示图像

使用OpenCV

读取图像

使用cv.imread()函数读取图像。图像应该在工作目录或图像的完整路径应给出。 第二个参数是一个标志,它指定了读取图像的方式。

  • cv2.IMREAD_COLOR: 加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
  • cv2.IMREAD_GRAYSCALE1:以灰度模式加载图像
  • cv2.IMREAD_UNCHANGED:加载图像,包括alpha通道(Alpha通道是计算机图形学中的术语,指的是特别的通道,意思是“非彩色”通道,主要是用来保存选区和编辑选区,每个像素再增加一个 Alpha 通道,取值为0到1,用来储存这个像素是否对图片有「贡献」,0代表透明、1代表不透明) 注意

除了这三个标志,可以分别简单地传递整数1(全彩)、0(灰度)或-1(alpha通道)。

import cv2
import numpy as np

# 加载彩色灰度图像
img = cv2.imread('messi5.jpg', 0)

即使图像路径错误,它也不会引发任何错误,但是 print(img) 会给出 None

显示图像

使用函数cv2.imshow()在窗口中显示图像。窗口自动适合图像尺寸。 第一个参数是窗口名称,它是一个字符串。第二个参数是我们的对象。你可以根据需要创建任意多个窗口,但可以使用不同的窗口名称。

... # 接上面
cv2.imshow('image', img)
cv2.waitKey(0)
cv.destroyAllWindows()

窗口的屏幕截图如下所示:

cv2.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。该函数等待任何键盘事件指定的毫秒。如果您在这段时间内按下任何键,程序将继续运行。如果0被传递,它将无限期地等待一次敲击键。它也可以设置为检测特定的按键,例如,如果按下键 a 等,我们将在下面讨论。

注意除了键盘绑定事件外,此功能还处理许多其他GUI事件,因此你必须使用它来实际显示图像。

cv2.destroyAllWindows()只会销毁创建的所有窗口。如果要销毁任何特定的窗口,请使用函数cv2.destroyWindow()在其中传递确切的窗口名称作为参数。

注意 在特殊情况下,可以先创建一个空窗口,然后再将图像加载到该窗口。在这种情况下,可以指定窗口是否可调整大小。这是通过功能cv2.namedWindow()完成的。默认情况下,该标志为cv2.WINDOW_AUTOSIZE。但是,如果将标志指定为cv2.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大以及向窗口添加跟踪栏时,这将很有帮助。

cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

写入图像

使用函数cv2.imwrite()保存图像。第一个参数是文件名,第二个参数是要保存的图像。 cv2.imwrite('messigray.png',img) 这会将图像以PNG格式保存在工作目录中。

总结

在下面的程序中,以灰度加载图像,显示图像,按 s 保存图像并退出,或者按 ESC 键直接退出而不保存

import cv2
import numpy as np
img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: # 等待ESC退出
 cv2.destroyAllWindows()
elif k == ord('s'): # 等待关键字,保存和退出
 cv2.imwrite('messigray.png',img)
 cv2.destroyAllWindows()

使用matplotlib

Matplotlib是Python的绘图库,提供了多种绘图方法。将在接下来的文章中看到它们。在这里,将学习如何使用Matplotlib显示图像,且可以使用Matplotlib缩放图像,保存图像等。

import cv2 
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('messi5.jpg', 0)
plt.imshow(img, cmap='gray', interpolation='bicubic')
plt.xticks([])
plt.yticks([])  # 隐藏 x 轴和 y 轴上的刻度值
plt.show()

在这里插入图片描述

注意:

OpenCV 是按照 BGR顺序展示, 而matplotlib是按照RGB顺序展示.

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

img = cv2.imread('messi4.jpg')
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
plt.subplot(121);plt.imshow(img) # expects distorted color
plt.subplot(122);plt.imshow(img2) # expect true color
plt.show()

cv2.imshow('bgr image',img) # expects true color
cv2.imshow('rgb image',img2) # expects distorted color
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

bgr与rgb转化方式:

  • img[..., ::-1]
  • cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

参考

  • Matplotlib绘图样式和功能

相关推荐

搭建一个20人的办公网络(适用于20多人的小型办公网络环境)

楼主有5台机上网,则需要一个8口路由器,组网方法如下:设备:1、8口路由器一台,其中8口为LAN(局域网)端口,一个WAN(广域网)端口,价格100--400元2、网线N米,这个你自己会看了:)...

笔记本电脑各种参数介绍(笔记本电脑各项参数新手普及知识)

1、CPU:这个主要取决于频率和二级缓存,频率越高、二级缓存越大,速度越快,现在的CPU有三级缓存、四级缓存等,都影响相应速度。2、内存:内存的存取速度取决于接口、颗粒数量多少与储存大小,一般来说,内...

汉字上面带拼音输入法下载(字上面带拼音的输入法是哪个)

使用手机上的拼音输入法打成汉字的方法如下:1.打开手机上的拼音输入法,在输入框中输入汉字的拼音,例如“nihao”。2.根据输入法提示的候选词,选择正确的汉字。例如,如果输入“nihao”,输...

xpsp3安装版系统下载(windowsxpsp3安装教程)

xpsp3纯净版在采用微软封装部署技术的基础上,结合作者的实际工作经验,融合了许多实用的功能。它通过一键分区、一键装系统、自动装驱动、一键设定分辨率,一键填IP,一键Ghost备份(恢复)等一系列...

没有备份的手机数据怎么恢复

手机没有备份恢复数据方法如下1、使用数据线将手机与电脑连接好,在“我的电脑”中可以看到手机的盘符。  2、将手机开启USB调试模式。在手机设置中找到开发者选项,然后点击“开启USB调试模式”。  3、...

电脑怎么激活windows11专业版

win11专业版激活方法有多种,以下提供两种常用的激活方式:方法一:使用激活密钥激活。在win11桌面上右键点击“此电脑”,选择“属性”选项。进入属性页面后,点击“更改产品密钥或升级windows”。...

华为手机助手下载官网(华为手机助手app下载专区)

华为手机助手策略调整,已不支持从应用市场下载手机助手,目前华为手机助手是需要在电脑上下载或更新手机助手到最新版本,https://consumer.huawei.com/cn/support/his...

光纤线断了怎么接(宽带光纤线断了怎么接)

宽带光纤线断了可以重接,具体操作方法如下:1、光纤连接的时候要根据束管内,同色相连,同芯相连,按顺序进行连接,由大到小。一般有三种连接方法,分别是熔接、活动连接和机械连接。2、连接的时候要开剥光缆,抛...

深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
  • 深度操作系统安装教程(深度操作系统安装教程图解)
win7旗舰版和专业版区别(win7旗舰版跟专业版)

1、功能区别:Win7旗舰版比专业版多了三个功能,分别是Bitlocker、BitlockerToGo和多语言界面; 2、用途区别:旗舰版的功能是所有版本中最全最强大的,占用的系统资源,...

万能连接钥匙(万能wifi连接钥匙下载)

1、首先打开wifi万能钥匙软件,若手机没有开启WLAN,就根据软件提示打开WLAN开关;2、打开WLAN开关后,会显示附近的WiFi,如果知道密码,可点击相应WiFi后点击‘输入密码’连接;3、若不...

雨林木风音乐叫什么(雨林木风是啥)

雨林木风的创始人是陈年鑫先生。陈年鑫先生于1999年创立了雨林木风公司,其初衷是为满足中国市场对高品质、高性能电脑的需求。在陈年鑫先生的领导下,雨林木风以技术创新、产品质量和客户服务为核心价值,不断推...

aics6序列号永久序列号(aics6破解序列号)

关于AICS6这个版本,虽然是比较久远的版本,但是在功能上也是十分全面和强大的,作为一名平面设计师的话,AICS6的现有的功能已经能够应付几乎所有的设计工作了……到底AICC2019的功能是不是...

win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
  • win7正在启动windows 卡住(win7正在启动windows卡住了 进入安全模式)
手机可以装电脑系统吗(手机可以装电脑系统吗怎么装)

答题公式1:手机可以通过数据线或无线连接的方式给电脑装系统。手机安装系统需要一定的技巧和软件支持,一般需要通过数据线或无线连接的方式与电脑连接,并下载相应的软件和系统文件进行安装。对于大部分手机用户来...