首页 百科知识 利用智能家居机器人编写一个互动型照相馆

利用智能家居机器人编写一个互动型照相馆

时间:2024-10-04 百科知识 版权反馈
【摘要】:使用Python程序,用户可以把各种库都整合在一起,从而设计出复杂的项目。用户可以把嵌入式控制板上的GPIO库与SimpleCV结合起来,从而实现一个互动型照相馆。通过使用SimpleCV中的findHaarFeatures 函数,还可以给照相馆所拍摄的人像添加各种元素,如帽子、眼镜或胡子。在开始之前,先确认嵌入式控制板上已经正确安装了Python的 RPi.GPIO 和 SimpleCV库。请参考“在Python中安装并测试GPIIO”和“安装并测试 SimpleCV”的内容。按钮的一个引脚接3.3 V,另一个接GPIO 24接口。

使用Python程序,用户可以把各种库都整合在一起,从而设计出复杂的项目。用户可以把嵌入式控制板上的GPIO库与SimpleCV结合起来,从而实现一个互动型照相馆。通过使用SimpleCV中的findHaarFeatures 函数,还可以给照相馆所拍摄的人像添加各种元素,如帽子、眼镜或胡子。

这里是把嵌入式控制板变为照相馆所需要的材料:

● USB 摄像头;

● 显示器;

● 按钮;

● 长度合适的连接线;

● 一个10 kΩ 的电阻

在开始之前,先确认嵌入式控制板上已经正确安装了Python的 RPi.GPIO 和 SimpleCV库。请参考“在Python中安装并测试GPIIO”和“安装并测试 SimpleCV”的内容。

(1)把按钮接在 GPIO 24 接口上。按钮的一个引脚接3.3 V,另一个接GPIO 24接口。不要忘记在地线和接GPIO的按钮引脚间加上一个10kΩ 的下拉电阻。

(2)找一张背景为白色胡子的图片,把它命名为“mustache.png”并保存到嵌入式控制板上的新目录下。

(3)在这个目录下,创建一个名为“photobooth.py”的新文件,输入代码并保存。

photobooth.py的源代码如下:

from time import sleep, time

from Simple CV import Camera, Image, Display

my Camera=Camera (prop set={ "width : 320, "height":240})

my Display=Display(resolution=(320i 240))

stache=Image(“ mustache . png" )

stache Mask = \

stache .create Binary Mask(colorl=(0,0,0),color2=(254,254,254))

stache Mask = stache Mask. invert ()

GPIO.setmode(GPIO.BCM)

GPIO.setup(24,GPIO.IN)

def mustachify(frame):

faces = frame. find Haar Features("face”)

if faces:

for face in faces:

print "Face at: " + str(face.coordinates())

my Face = face.crop()

noses = my Face. f ind Haar Features (“nose” )

if noses:

nose=noses. sort Area ()[-1 ]

print “Nose at:” +str(nose. coordinates ())

xmust=face.points[0] [0] + nose.x-(stache.width/2)

ymust= face.points[0][1] +nose.y + (stache.height/3)

else:

return frame

frame=frame.blit( stache, pos=( xmust,ymust), mask = stach Mask)

return frame

else:

return frame

while not my Display. is Done():

input Value=GPI0. input(24)

frame=my Camera. getlmage()

if input Value==True:

frame=mustachify(frame)

frame. save( "mustache- " +str(time())+ jpg")

frame = frame. flip Horizontal()

frame. show()

sleep(3)

else:

frame= frame. flip Horizontal()

frame. save(my Display)

sleep( .05)

现在把摄像头连接好,在终端上进入胡子图片和“photobooth.py”所在的目录,运行脚本如下:

pi@raspberrypi ~ $ sudo python photobooth.py

屏幕上会显示摄像头所捕获的图片。当按钮被按下时,程序会检测人脸、胡子并保存图片(所有的图片都会保存在与脚本相同的路径下)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈