雙目立體視覺:五(點雲)

三眼二郎發表於2019-03-17

上一章已經寫完了如何表達我們得到的三維座標
這裡
為了能更好地表達三維資料,我們應用了

點雲

淺顯地理解為:點+雲
有一個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高度

相關文章