Opencv学习三:图像处理的基本操作

一、读取图像

使用opencv提供的函数cv2.imread()来读取图像,该函数支持各种静态图像格式。函数格式如下:

retval = cv2.imread(filename[,flag])
  • retval 是返回值,它的值是读取到的图像,如果没有读取图像,则返回“None”。
  • filename表示要读取的图像的完整文件名。
  • flag是读取标记,用来控制读取文件的类型。

如果要使用cv2,imread()函数读取一副图像,则代码如下所示:

improt cv2
lena = cv2.imread(D:\\by2.png)
print(lean)

二、显示图像

opencv提供了多个与显示相关的函数,具体如下:

1.nameWindow()

函数cv2.nameWindow()用来创建窗口,语法格式如下:

None = cv.2nameWindow(winname)     #winname是要创建窗口的名称
  • winname是要创建窗口的名称

2.inshow()

函数Inshow()用来显示图像,其语法格式为:

None = cv2.imshow(winname,mat)

  • winname是窗口名称
  • mat是要显示的图像

例如,在一个窗口内显示读取的图像,代码如下:

import cv2
lena = cv2.imread("D:\\by2.png")
cv2.nameWindow("lesson")
cv2.imshow("lesson",lena)

在本程序中,首先通过cv2.imread()函数读取图像by2png,接下来通过cv2.nameWindow()函数创建一个名为lesson的窗口,最后通过cv2.imshow()函数在窗口lesson内显示图像by2.png。

在实际使用过程中,可以先用cv2.nameWindow()先创建一个窗口,在让函数cv2.imread()引用该窗口来显示图像。也可以先不创建窗口,直接使用函数cv2.imshow()函数引用一个不存在的窗口,并且在其中显示指定的图像,这样函数cv2.imshow()函数会完成如下如下两个步骤:

import cv2
lena = cv2.imread("D:\\by2.png")
cv2.inshow("demo",lena)

3.waitKey函数

函数cv2.waitKey用来等待按键,当用户按下键盘后,该语句会被执行,并获取返回值,语法格式为:

retval = cv2.waitKey([delay])
  • retval表示返回值。如果没有按键被按下,则返回-1;如果有按键被按下,则返回该按键的ASCII码。
  • delay表示等待键盘出发的时间,单位是ms。当改值是复数或者零时,表示无线等待。该值默认为0。
import cv2
lena = cv2.imread("D:\\by2.png")
cv2.imshow("demo",lena)
key = cv2.waitKey()
if key == ord('A'):
    cv2.imshow("Press A",lena)
elif key == ord('B'):
    cv2.imshow("Press B",lena)

运行上述代码,按下键盘的A、B键会在一个新的窗口显示图像。

4.destoryWindows函数

函数cv2.destoryWindows()用来释放(销毁)指定窗口,语法格式为:

None = cv2.destoryWindows(winname)

接下来演示一下如何使用这个函数来释放窗口

import cv2
lena = cv2.imread("D:\\by2.png")
cv2.imshow("demo",lena)
cv2.waitKey()
cv2.destroyWindows("demo")

当未按下某个键时,程序没有新的状态出现;当按下键盘上的任意一个键时,窗口会消失。

三、保存图像

语法格式为:

retval = cv2.imwrite(filename,img[,params])
  • filename是要保存的目标文件的完整路径名,包含文件拓展名。
  • img是被保存的图像的名称。
  • params是保存类型的参数,是可选的。

编写程序,将读取的图像保存到下面的目录中:

import cv2
lena = cv2.imread("D:\\by2.png")
r = cv2.imwrite("F:\\BY3.png",lena)

你可能感兴趣的:(opencv)