您现在的位置是:首页 > 正文

OpenCV-Python 官方文档学习

2024-01-31 00:00:29阅读 0

图像学习:

目标:

1.在这里你会学习到如何读取一个图像,如何取显示并且保存它。

2.你将徐汇这些方法:cv2.imread() , cv2.imshow() , cv2.imwrite() ;

3.自然而然的你就学会了如何使用Matplotlib库去显示图片。

OpenCV的使用

读取一张图片

使用cv2.imread() 去读取一张图片。这张图片应该在工作目录下或者是在其他地方但需要给定一个全路径。

第二个参数是一个标志,他指定了图片使用什么方式去读取。

  • cv2.IMREAD_COLOR:加载彩色图像。图像的任何透明度都将被忽略。它是默认标志。
  • cv2.IMREAD_GRAYSCALE:在灰度模式下加载图像。
  • cv2.IMREAD_UNCHANGED:使用alpha通道加载图像。

注意:在使用过程中并非使用这三个变量,你可以使用整数 0,1,-1 分别代表他们。

例子:

import numpy as np
import cv2

# Load an color image in grayscale
img = cv2.imread('messi5.jpg',0)

提示: 如果你的图片地址写错了,运行时候并不报错,但是当你 print img 将会给你报错。

显示一张图片

使用cv2.imshow() 在一个窗口下显示一张图片,这个窗口会自动适应图片的尺寸。

第一个参数是窗口的名称,他的类型是String。第二个参数是我们的图像,你能创建很多窗口如果你需要的话,但是这些窗口名称必须都不一样。

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

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

cv2.destroyAllWinddows() 简单的毁掉所有我们创建过的窗口。如果你想关闭任何指定的窗口,使用这个方法,其中传递精确的窗口名称作为参数。

注意:有一种特殊情况,您已经可以创建一个窗口并在以后将图像加载到它。在这种情况下,您可以指定窗口是否可以调整大小。这是通过函数cv2.namedWindow()完成的。默认情况下,标志是cv2.WINDOW_AUTOSIZE。但是,如果将标志指定为cv2.WINDOW_ALL,则可以调整窗口的大小。当图像尺寸太大,并在窗口中添加跟踪条时,这将是很有帮助的。

以下代码:

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

写入一张图片

使用方法cv2.imwrite() 去保存一个图片。第一个参数是文件名称,第二个参数是你想保存的图像变量。

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

小计

下面的程序在灰度中加载一个图像,显示它,如果您按s‘并退出,则保存该图像,如果您按esc键,则简单地退出而不保存。

import numpy as np
import cv2

img = cv2.imread('messi5.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('messigray.png',img)
    cv2.destroyAllWindows()


使用Matplotlib

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

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

img = cv2.imread('messi5.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()

运行截图:

参考资源:

  1. Matplotlib Plotting Styles and Features

网站文章