nao机器人拍照,并且展示
Visualize an image using PIL
Get one image from NAO, then display it using PIL.
Python实现:
# -*- encoding: UTF-8 -*-
# Get an image from NAO. Display it and save it using PIL.
import sys
import time
# Python Image Library
import PIL.Image as Image
from naoqi import ALProxy
def showNaoImage(IP, PORT):
"""
First get an image from Nao, then show it on the screen with PIL.
"""
camProxy = ALProxy("ALVideoDevice", IP, PORT)
resolution = 2 # VGA
colorSpace = 11 # RGB
videoClient = camProxy.subscribe("python_client", resolution, colorSpace, 5)
t0 = time.time()
# Get a camera image.
# image[6] contains the image data passed as an array of ASCII chars.
naoImage = camProxy.getImageRemote(videoClient)
t1 = time.time()
# Time the image transfer.
print "acquisition delay ", t1 - t0
camProxy.unsubscribe(videoClient)
# Now we work with the image returned and save it as a PNG using ImageDraw
# package.
# Get the image size and pixel array.
imageWidth = naoImage[0]
imageHeight = naoImage[1]
array = naoImage[6]
# Create a PIL Image from our pixel array.
im = Image.frombytes("RGB", (imageWidth, imageHeight), array)
# Save the image.
im.save("camImage.png", "PNG")
im.show()
if __name__ == '__main__':
IP = "169.254.165.22" # Replace here with your NaoQi's IP address.
PORT = 9559
# Read IP address from first argument if any.
if len(sys.argv) > 1:
IP = sys.argv[1]
naoImage = showNaoImage(IP, PORT)