Intel家的东西,第一个特点就是有点“贵”(大概率是我穷)。
Intel RealSense 相机介绍.上,我以前写过一些关于这个相机的。
现在最新的版本是D455i,最有性价比可能的D435,但是价钱都是1000开外了,我也不是说贵,我只是用不到而已。所以我就考虑别的可能性,intel家的东西是SDK好,demo丰富,支持的语言丰富。

Matlab可以控制,是不是很酷

最新的相机了,我用不到也穷~
然后今天晚上冲浪的时候,看到一个店家出R200,才159!!!我的妈,问了下还是全新的,等啥呢!
冲!!!

大概机器长这样
因为咱们要这个东西,也不是干嘛,是学习┗|`O′|┛ 嗷~~
https://github.com/IntelRealSense/librealsense/tree/v1.12.1上个最重要的GitHub的地址

看见没有R200
https://github.com/IntelRealSense/librealsense事实上最新的SDK是这个,但是R200太老了,不支持这个了~

看我绘图的地方


因为贫穷,好多的都不写着不支持R200
我觉得是可以支持的,等机器回来看我操作~
找到一篇文章,大致看看:
https://blog.csdn.net/jy1023408440/article/details/105732098?utm_medium=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.wap_blog_relevant_pic&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.wap_blog_relevant_pic
标题

https://github.com/IntelRealSense/librealsense/releases/tag/v2.34.0
这里也没有写支持R200
这篇文章写于

2020-04-24

可惜现在都2020-09-21了

版本已经很旧了



这个是文章中成功的图


pip install pyrealsense2
在一个文章里面找到了运行相机的最低要求
https://www.intel.cn/content/www/cn/zh/support/products/92256/emerging-technologies/intel-realsense-technology/intel-realsense-cameras/intel-realsense-camera-r200.html


v10的SDK不可以再下载
https://www.intelrealsense.com/这是推荐的新的SDK的位置
github.com/IntelRealSense/librealsense/blob/master/doc/sample-data.md然后SDK支持深度图像的录制

各种各样的,可以在没有相机的情况下看
接下来试试看

在我们的viwer内打开

2D和3D全部打开

也可以看看我们的视频参数
日后研究

这个我不小心调出来的,不知道是什么

还有参数

立体的点云图

测量图
可能很多人,不知道这个东西的意义在哪里,我想意义就是在于真实~
以下给出Matlab和Python的处理代码:
% 使管道对象管理流式处理
管道 = 实感.管道();
% 定义点云对象
pcl_obj = 实感.点云();
% 使用默认设置在任意摄像机上开始流式传输
管道.开始();
% 获取帧。我们抛弃了第一对夫妇
摄像机结算时间的百分比
对于 i = 1:5
帧 = 管道.wait_for_帧();
结束
% 选择深度帧
深度 = 帧.get_深度_帧();
% 获得不带颜色的点云点
pnts = pcl_obj.计算(深度);
顶点 = pnts.get_vertice();
% 可选:填充 MATLAB 点云对象
pCloud = 点云(顶点);
%显示点云
pcshow(pCloud);
管道.停止();只获得点云图

这些代码适合这些产品
R200在其中,其实也可以说明
其实新老产品就是性能的区别,软件栈是通用的
MATLAB:
% Make Pipeline object to manage streaming
pipe = realsense.pipeline();
% define point cloud object
pcl_obj = realsense.pointcloud();
% define colorizer to give point cloud color
colorizer = realsense.colorizer();
% Start streaming on an arbitrary camera with default settings
profile = pipe.start();
% Get frames. We discard the first couple to allow
% the camera time to settle
for i = 1:5
frames = pipe.wait_for_frames();
end
% Stop streaming
pipe.stop();
% Select depth frame
depth = frames.get_depth_frame();
% get point cloud points without color
points = pcl_obj.calculate(depth);
% get texture mapping
color = frames.get_color_frame();
% map point cloud to color
pcl_obj.map_to(color);
% get vertices (nx3)
vertices = points.get_vertices();
% get texture coordinates (nx2)
tex_coords = points.get_texture_coordinates();import pyrealsense2 as rs
import numpy as np
import cv2
if __name__ == "__main__":
# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
# Start streaming
pipeline.start(config)
try:
while True:
# Wait for a coherent pair of frames: depth and color
frames = pipeline.wait_for_frames()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()
if not depth_frame or not color_frame:
continue
# Convert images to numpy arrays
depth_image = np.asanyarray(depth_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
# Apply colormap on depth image (image must be converted to 8-bit per pixel first)
depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
# Stack both images horizontally
images = np.hstack((color_image, depth_colormap))
# Show images
cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
cv2.imshow('RealSense', images)
key = cv2.waitKey(1)
# Press esc or 'q' to close the image window
if key & 0xFF == ord('q') or key == 27:
cv2.destroyAllWindows()
break
finally:
# Stop streaming
pipeline.stop()

三个摄像头
R200 实际有 3 个摄像头,可提供 RGB(彩色)和立体红外图像,以生成深度。借助激光投影仪,该摄像头可进行三维扫描,获取场景感知和增强的摄影。内部范围约 0.5-3.5 米,外部范围可达 10 米。注:范围在很大程度上取决于模块和照明。
不同于英特尔® 实感™ F200 摄像头,R200 面向世界,而非对着用户。因此,实感 SDK 侧重于 R200 的以下用例。
也就是说R200是适合在室外使用的,室内当然也可以使用了~
这些用例基于 R200 摄像头的两个功能区。
关于 R200 摄像头,最令人兴奋的是更大范围的扫描能力,这是测量深度的新方法。R200 包括立体摄像头和 RGB 摄像头。由于此摄像头不太依赖于红外线,因此它可在户外使用。彩色摄像头可提供人类影像,2 个深度摄像头可提供数据供算法使用。此外,如果系统内建有 IMU(惯性测量单元),则 SDK 可以调整对添加到场景的对象产生的重力影响。不过这里又写如果了,也不知道是不是有IMU。
通过立体摄影,可使用三角测量,通过 2 个“单独”摄像头之间的视差(像素偏移)来计算深度/三维,从而得出深度测量。注意,这基于并行平面(不是与摄像头的绝对范围)。SDK 中包含一个实用程序,用于帮助进行平面检测。确保摄像头在初始化期间可以看到地平线,这对于扫描目标的方向至关重要。
R200 可采用 6 DOF(自由度)跟踪摄像头在三维空间中的移动。与前/后/上/下/左/右呈 3 度,与偏航/俯仰/滚动运动呈 3 度。
要获得最佳三维扫描结果:
彩色摄像头能够以 1080p @60FPS 进行 32 位 RGBA,使用定焦和 16:3 的宽高比。RGB 摄像头拥有比双摄像头略大的 FOV,但这并不意味着可用作独立摄像头。这里我们可以看到即使不用深度功能,也可以使用RGB的图像,USB3.0哦~

再看看这些摄像头
双深度摄像头使用定焦 4:3 宽高比和 70x59x46 度视界。 IR 是 850 纳米范围的 1 级激光, 可用分辨率:
@60FPS,深度为 320x240;颜色为 640x480 @60FPS,深度为 480x360,颜色为 320x240 或 640x480 @30FPS,深度为 320x240;颜色为 640x480、1280x720 或 1920x1080 @30FPS,深度为 480x360;颜色为 320x240、640x480、1280x720 或 1920x1080
实感SDK 可提供与项目深度到颜色的对接,反之亦然。
R200 的功耗范围为 0 至 100mw(空闲)到 1.0-1.6 瓦(活跃)(取决于使用的模块)。它有多项节能特性,包括使用 USB3 。