作者gibletnoodle (再蠢一點)
看板MATLAB
標題[討論] 3D point cloud Plot (plot3/scatter3)
時間Wed Mar 28 12:32:14 2012
各位前輩午安:
目前我在使用range image device
可以量測空間中的3D點座標
譬如說在range image上的一個pixel對應到3D座標上的值是(x,y,z)=(1,2,3)
如果我用plot3 or scatter指令去畫會相當耗時
此外如果及時變動視角會相當緩慢,想請問有無比較好的解決方法?
另外我嘗試將這些空間上的點標在一個3維矩陣size=(300,400,1000)
這些點有特定的強度值
因此想請問是否有能夠直接plot 3維矩陣的座標,依照這些點的強度自訂顏色?
謝謝!
-------------------------Code------------------------
前處理是把檔案讀成一個矩陣out
size(out)=67384*8 表示67384筆資料,格式為:X,Y,Z,R,G,B,row,col
X,Y,Z為此點的座標,RGB代表此點的顏色
row,col代表他在原本range image上的影像座標點
其實繪圖的code只有兩行..
pointsize=ones(PointCloudNumber,1)*5;
scatter3(out(:,1),-out(:,2),out(:,3),pointsize,out(:,4:6)./255,'filled'),
view(-60,60);
-------------------------------------------------------
plot3的效果也差不多
先謝謝a大&m大了!
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.253.171
※ 編輯: gibletnoodle 來自: 140.112.253.171 (03/28 12:33)
1F:推 abc01251:加顏色 好像就會很慢~~ 所以我改用C來畫圖 比較快 03/29 02:34
2F:→ mp19990920:樓上:有可能是你寫的matlab程式太不matlab了, 03/29 18:06
3F:→ mp19990920:我的CPU是Intel Pentium(M)715 1.5GHz + DDR2 768MB 03/29 18:08
4F:→ mp19990920:都沒這樣的問題 03/29 18:08
5F:→ mp19990920:原PO您可以把您的程式貼上來,讓大家幫你想想如何加速 03/29 18:09
6F:→ gibletnoodle:謝謝兩位!等等我改一下文章把程式碼貼上 03/29 21:40
※ 編輯: gibletnoodle 來自: 140.112.175.37 (03/29 22:42)
7F:推 abc01251:for i=1:size(data,1) 03/30 15:22
8F:→ abc01251:plot3(data(i,1),data(i,2),data(i,3),'.','color', 03/30 15:24
9F:→ abc01251:,color(i,:)); 03/30 15:24
10F:→ abc01251:end 03/30 15:24
11F:→ abc01251:因為每個點顏色都不一樣~ 所以我都分開畫 但是會超慢 03/30 15:26
12F:→ mp19990920:可以不用for迴圈,plot3(data(:,1),data(:,2),data(:,3 03/30 23:08
13F:→ mp19990920:), '.', 'color', color) 03/30 23:09
14F:→ mp19990920:如有錯誤請參考help說明,matlab的function幾乎都可以 03/30 23:09
15F:→ mp19990920:輸入matrix,所以很多時候是不需用迴圈的 03/30 23:10