双目立体视觉:五(点云)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a6333230/article/details/88607545

上一章已经写完了如何表达我们得到的三维坐标
这里
为了能更好地表达三维数据,我们应用了

点云

浅显地理解为:点+云
有一个x,y,z三坐标的点,而点上不再单纯是点了,点有了自己的属性,可以加入颜色,也就是说点包含了RGB。

ptCloud = pointCloud(xyzPoints)
ptCloud = pointCloud(xyzPoints,Name,Value)

Name:'Color',[0 0 255]——点云全是蓝色

'Color',image——点云是图像的颜色

当点云信息获取后,需要创建点云的显示窗口

player3D = pcplayer([-5, 5], [-5, 5], [0, 8], 'VerticalAxis', 'y', ...
    'VerticalAxisDir', 'down');

player = pcplayer(xlimits,ylimits,zlimits,Name,Value)
xlimits,ylimits,zlimits均为坐标轴的限制,在限制范围外不被显示。由于之前的操作已经除了100,从厘米变成了米,因此此处的参数都是米。
‘MarkerSize’,6——点云点的尺寸(直径)
‘VerticalAxis’,‘y’——设置垂直轴,这里设置为y轴,为了符合双目的坐标系。
‘VerticalAxisDir’, ‘down’——设置正方向向下,也就是y轴垂直于水平面
view(player3D, ptCloud)——显示点云

图像点提取

imagePoints1 = detectMinEigenFeatures(rgb2gray(I1), 'MinQuality', 0.1);

上面程序的算法:Shi和Tomasi开发的最小特征值算法来寻找特征点
Shi, J., and C. Tomasi, “Good Features to Track,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, June 1994, pp. 593–600.
其中第一项:rgb2gray(I1)——待找特征点的灰度图像。
第二项:‘MinQuality’, 0.1——限制角的最低接收质量,范围[0,1],值越大越能去掉一些错误的角点,但是有效的角点的数量会明显减少。(一般的matlab中,多是(‘name’,值)这样的很常见,前面名称,后面跟值)
其他可选项:’ FilterSize’——范围[3,inf],高斯滤波器维度,平滑图像的梯度,
‘ROI’——感兴趣区域进行角点检测[100,100,300,200],其中[100,100]表示区域左上角坐标,300宽度,200高度

猜你喜欢

转载自blog.csdn.net/a6333230/article/details/88607545