openCV入门系列教学(一) 图像的读取、展示与保存


 

序言

  笔者最近做了两个CV领域的项目,因为数据量不足所以主要使用的是传统的CV方法。这时候不得不夸一句opencv库,让复杂的算法原理变得如此简单(调包调参侠表示很骄傲)。所以闲暇下来对opencv的方法进行整理,一是巩固之前学到的知识,二是希望和广大朋友们分享。话不多言,咱们开始~


 

一、图像读取


  使用 OpenCV读取图像比较简单,可以使用此函数读取图像。

cv2.imread()

  图像应该在工作目录或图像的完整路径给出。我们需要给它传递两个参数,第二个参数是一个标志,它指定了读取图像的方式。

  • CV. IMREAD_ COLOR:加载彩色图像。任何图像的透明度都会被忽视。它是默认标志。
  • CV. IMREAD_GRAYSCALE:以灰度模式加载图像 。
  • CV. IMREAD_UNCHANGED:加载图像,包括 alpha通道。

  注意除了这三个标志,我们可以分别简单地传递整数1、0或-1。

二、图像显示
  

  显示图像可以用

cv2.imshow()

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

  比如下面的例子,读取一张图片的灰度图。

import cv2

img = cv2.imread('cat.png', 0)
print(img)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

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

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

  注意:在特殊情况下,我们可以创建一个空窗口,然后再将图像加载到该窗口。在这种情况下,我们可以指定窗口是否可调整大小。这是通过功能cv.namedWindow()完成的。默认情况下,该标志为cv.WINDOW_AUTOSIZE。但是,如果将标志指定为cv.WINDOW_NORMAL,则可以调整窗口大小。

  展示图像时还可以用Matplotlib来展示,但是需要注意的是,OpenCV加载的彩色图像处于BGR模式,但是Matplotlib以RGB模式显示。(笔者就在这里踩了坑)因此,如果使用OpenCV读取彩色图像,则Matplotlib中将无法正确显示彩色图像。

三、图像保存
  

  使用下列函数保存图像。

cv2.imwrite()

  它需要传递两个参数,第一个参数是文件名,第二个参数是要保存的图像。 例如:

  cv2.imwrite('cat.png',img)

  这会将图像以PNG格式保存在工作目录中。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM