【解析新特性】300W单路输出工业电源>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 如何在Raspberry Pi上使用OpenCV设置图像处理

共2条 1/1 1 跳转至

如何在Raspberry Pi上使用OpenCV设置图像处理

助工
2019-03-01 10:51:42    评分

本教程重点介绍如何在Raspberry Pi上使用OpenCV来读取,显示和写入图像。这是开始使用OpenCV时需要了解的基本内容之一,也是最常用的代码部分之一。

如果您希望创建一个在家中漫游并在您不在家时拍照的监控机器人,那么本教程是您需要采取的首要步骤之一。

让我们首先浏览用于读取,显示和保存图像的每个函数。然后,我们可以编写代码,以便我们的程序使用Pi相机检测面部,在检测到的面部周围创建一个矩形,并拍摄图片。

在Raspberry Pi上使用OpenCV读取图像

用于读取图像的函数是cv2.imread()该函数有两个参数。

第一个参数采用图像的名称。如果图像在工作目录中,那么您只需编写其名称即可。否则,您将必须提供图像的完整路径。

第二个参数采用告诉程序应该如何读取图像的标志。

  • 1或cv2.IMREAD_COLOR加载彩色图像。它使用默认颜色并忽略图像透明度。

  • 0或cv2.IMREAD_GRAYSCALE加载灰度图像。

  • -1或cv2.IMREAD_UNCHANGED加载图像,包括alpha通道。

image = cv2.imread('obama.jpg', 0)orimage = cv2.imread('obama.jpg', cv2.IMREAD_GRAYSCALE)

我们可以使用上述任何一行来读取图像。

使用Raspberry Pi在OpenCV中显示图像

用于显示图像的函数是cv2.imshow()此函数还有两个参数:第一个参数是窗口名称,第二个参数是图像的名称半导体社区

注意:您无法更改此功能创建的窗口的大小。

还有一个函数(cv2.namedWindow())可用于创建窗口,然后使用cv2.imshow()在其中显示图像。您将能够以这种方式调整图像大小。

cv2.namedWindow('Obama', cv2.WINDOW_NORMAL) 
 cv2.imshow('Obama', image)
使用Raspberry Pi在OpenCV中编写图像

写入图像的函数是cv2.imwrite(),它还有两个参数:第一个参数是图像文件名(图像将以此文件名保存),第二个IC参数是您想要的图像的名称保存。

您还可以将图像保存为其他格式,如以下行将JPG图像更改为PNG格式。

cv2.imwrite('newobama.png', image)

用于读取,显示和写入图像的Python代码

运行代码后,将出现类似于下面的输出窗口。如果按“s”,程序将以灰度格式保存图像,但如果按ESC键,它将退出窗口而不保存图像。

灰度模式下的图像

# Import OpenCV libraryimport cv2# Load color image in grayscaleimage = cv2.imread('obama.jpg', 0)#or#image = cv2.imread('obama.jpg', cv2.IMREAD_GRAYSCALE).# Create the resizeable windowcv2.namedWindow('Obama', cv2.WINDOW_NORMAL)

v2.waitkey()是一个键盘绑定函数,它等待任何键盘事件的指定时间。它需要一个参数,即以毫秒为单位的时间。如果在指定的时间范围内按下该键,程序将继续。传递0表示它将无限期地等待一个键。

cv2.destroyAllWindows()函数销毁所有打开的窗口。如果要销毁特定窗口,请使用cv2.destroyWindow()并将窗口名称作为参数传递。

在Raspberry Pi上使用OpenCV捕获图像并检测面部

现在根据我们学到的东西,让我们编写一个演示代码,在代码被检测到之前一直持续观察。在检测到面部后,它将在该面周围形成一个矩形并保存图像。

# import the necessary packagesfrom picamera.array import PiRGBArrayfrom picamera import PiCameraimport cv2import numpy as np # initialize the camera and grab a reference to the raw camera capturecamera = PiCamera()camera.resolution = (640, 480)camera.framerate = 30


尝试运行此代码,您应该能够看到写入相应目录的新图像文件,该文件突出显示图片中的面。

突出显示的图像






关键词: Raspberry     OpenCV     图像处理    

高工
2019-03-01 21:34:29    评分
2楼

不错不错


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]