opencv图像入门

2019-06-25  本文已影响0人  蛱蝶飞来过墙去

阅读图片

import numpy as np
import cv2 as cv
# Load an color image in grayscale
img = cv.imread('messi5.jpg',0)

使用函数cv.imread()读取图像。图像应位于工作目录中,或者应提供完整的图像路径。
第二个参数是一个标志,指定应该读取图像的方式。

显示图片

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

使用函数cv.imshow()在窗口中显示图像。窗口自动适应图像大小。
第一个参数是一个窗口名称,它是一个字符串。
第二个参数是读取的图像。 您可以根据需要创建任意数量的窗口,但使用不同的窗口名称。

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

注意:除了绑定键盘事件,此函数还处理许多其他GUI事件,因此您必须使用它来实际显示图像。
cv.destroyAllWindows()只是破坏了我们创建的所有窗口。如果要销毁任何特定窗口,请使用函数 cv.destroyWindow(),其中传递确切的窗口名称作为参数。

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

有一种特殊情况,您可以在以后创建窗口并将图像加载到该窗口。在这种情况下,您可以指定窗口是否可调整大小。它使用函数cv.namedWindow()完成。默认情况下,标志为cv.WINDOW_AUTOSIZE。但是如果将flag指定为cv.WINDOW_NORMAL,则可以调整窗口大小。当图像尺寸过大并向窗口添加轨迹栏时,它会很有用。

写一个图像

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

第一个参数是文件名/路径,第二个参数是要保存的图像。

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

警告
如果您使用的是64位计算机,则必须k = cv.waitKey(0)按如下方式修改行:k = cv.waitKey(0) & 0xFF

使用Matplotlib

import numpy as np
import cv2 as cv
from matplotlib import pyplot as plt
img = cv.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()

Matplotlib是Python的绘图库,为您提供各种绘图方法。您将在即将发表的文章中看到它们。在这里,您将学习如何使用Matplotlib显示图像。您可以使用Matplotlib缩放图像,保存等。
警告
OpenCV加载的彩色图像处于BGR模式。但Matplotlib以RGB模式显示。因此,如果使用OpenCV读取图像,则Matplotlib中的彩色图像将无法正确显示。

上一篇 下一篇

猜你喜欢

热点阅读