1、OpenCV——图片的读、改、显、存操作函数

 OpenCV——函数

函数cv2.imread()读取图片

opencv读取图片的函数是 cv2.imread。 此函数采用以下参数:

  • 要读取/加载的图像的文件名
  • 用于指定我们要以哪种模式读取图像的标志

如果我们尝试加载不存在的图像,该函数将返回无(None)。这可以用来检查图像是否被成功读取。目前,OpenCV 支持 .bmp.jpeg.jpg.png.tiff 和 .tif 等格式的图像。详细的列表可以:参考官方文档icon-default.png?t=M85Bhttps://docs.opencv.org/4.2.0/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56

通常,只有三个标志用于在指定模式下读取图像:

  • cv2.IMREAD_UNCHANGED:照原样读取图像。这意味着,如果图像是具有透明背景的 PNG 图像,则它将被读取为 BGRA 图像,其中 A 指定 Alpha 通道:负责透明度。 如果不使用此标志,则该图像将作为 BGR 图像读取。请注意,BGR 是指图像的蓝色,绿色和红色通道。A(或 Alpha 通道)负责透明度。这就是为什么具有透明背景的图像将被读取为 BGRA 而不是 BGR。 同样需要注意的是,默认情况下,OpenCV 使用 BGR 模式,这就是我们在这里讨论 BGRA 模式而不是 RGBA 模式的原因。
  • cv2.IMREAD_GRAYSCALE:以灰度格式读取图像,这会将任何彩色图像转换为灰度图像。
  • cv2.IMREAD_COLOR:默认标志,它将任何图像读取为彩色图像(BGR 模式)。

OpenCV 以 BGR 模式而不是 RGB 模式读取图像。这意味着通道的顺序变为蓝色,绿色和红色。 即使我们将使用其他 OpenCV 函数,也假定图像处于 BGR 模式

 函数cv2.cvtColor()修改图像

当场景需要以下任务的操作时:

  • 转换图像的色彩空间
  • 将图像分成多个通道
  • 合并通道以形成图像

可以用转换图像的色彩空间 cv2.cvtColor 函数,此函数有两个输入元素:

  • 要转换的图像
  • 颜色转换标志,如下所示: cv2.COLOR_{CURRENT_COLOR_SPACE}2{NEW_COLOR_SPACE}

例如,要将 BGR 图像转换为 HSV 图像,将使用 cv2.COLOR_BGR2HSV。 要将 BGR 图像转换为 灰度 图像,将使用:cv2.COLOR_BGR2GRAY,依此类推。详细的列表可以:参考官方文档icon-default.png?t=M85Bhttps://docs.opencv.org/4.2.0/d8/d01/group__imgproc__color__conversions.html

拆分和合并渠道。假设您只想修改图像的红色通道,您可以先拆分三个通道(蓝色,绿色和红色),修改红色通道,然后再次合并三个通道。让我们看看如何使用 OpenCV 函数拆分和合并通道:

  • 分割通道,可以使用 cv2.split 函数。 它仅需一个参数:要分割的图像,并返回三个通道的列表:蓝色,绿色和红色。
  • 合并通道,可以使用 cv2.merge 函数。 它仅接受一个参数:一个由三个通道(蓝色,绿色和红色)组成的集合,并返回合并的图像。

 函数cv2.imshow()显示图片

使用三个主要函数来进行显示:

  • 显示图像,使用 cv2.imshow 函数。它有两个参数。第一个参数是一个字符串,它是我们将在其中显示图像的窗口的名称。第二个参数是我们要显示的图像。
  • 保持时间,调用 cv2.imshow 函数后,我们使用 cv2.waitKey 函数。此函数指定控件应在窗口上停留多长时间。如果要在用户按下任意键后,才执行下一段代码,则可以提供 0。否则,可以提供一个数字,该数字指定程序在移至下一段代码之前将等待的毫秒数。例如,如果要等待 10 毫秒才能执行下一段代码,则可以使用cv2.waitKey(10)
  • 关闭窗口,如果不调用 cv2.waitKey 函数,则窗口将无法正确显示。但是,运行下一个代码后,该窗口仍将保持打开状态,要关闭所有显示窗口,我们可以使用 cv2.destroyAllWindows() 函数。它不带任何参数。建议不再使用显示窗口时将其关闭。

 

函数cv2.imwrite()保存图像函数

使用 OpenCV 的 cv2.imwrite 函数保存图像。它有两个参数:

  • 一个字符串,指定我们要用于保存图像的文件名
  • 我们要保存的图像
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值