官方例程:
源自:IntelRealSense/librealsense
源码如下:
# First import the library
import pyrealsense2 as rs
# Create a context object. This object owns the handles to all connected realsense devices
pipeline = rs.pipeline()
pipeline.start()
try:
while True:
# Create a pipeline object. This object configures the streaming camera and owns it's handle
frames = pipeline.wait_for_frames()
depth = frames.get_depth_frame()
if not depth: continue
# Print a simple text-based representation of the image, by breaking it into 10x20 pixel regions and approximating the coverage of pixels within one meter
coverage = [0]*64
for y in xrange(480):
for x in xrange(640):
dist = depth.get_distance(x, y)
if 0 < dist and dist < 1:
coverage[x/10] += 1
if y%20 is 19:
line = ""
for c in coverage:
line += " .:nhBXWW"[c/25]
coverage = [0]*64
print(line)
finally:
pipeline.stop()
异常:
如果使用>3.0版本的Python可能出现如下异常
- 异常1:name ‘xrange’ is not defined:在Python3中xrange函数与range函数合并为range()函数,所以应该直接使用range()函数
- 异常2:list indices must be integers or slices, not float;就是因为list索引必须是整型或切片,所以要让把索引强制转换为整型。
修改后:
# First import the library
import pyrealsense2 as rs
# Create a context object. This object owns the handles to all connected realsense devices
pipeline = rs.pipeline()
pipeline.start()
try:
while True:
# Create a pipeline object. This object configures the streaming camera and owns it's handle
frames = pipeline.wait_for_frames()
depth = frames.get_depth_frame()
if not depth: continue
# Print a simple text-based representation of the image, by breaking it into 10x20 pixel regions and approximating the coverage of pixels within one meter
coverage = [0]*64
for y in range(480):
for x in range(640):
dist = depth.get_distance(x, y)
if 0 < dist and dist < 1:
coverage[int(x/10)] += 1
if y%20 is 19:
line = ""
for c in coverage:
line += " .:nhBXWW"[int(c/25)]
coverage = [0]*64
print(line)
finally:
pipeline.stop()