最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python_處理陣列式點云_讀取

2023-03-31 18:43 作者:Z5  | 我要投稿

前言

本文使用的模塊是numpy和ctypes,解析內(nèi)存里的數(shù)據(jù),并將之轉(zhuǎn)換為numpy數(shù)組

導入模塊:

正文

????原始數(shù)組在內(nèi)存里是以一維字節(jié)數(shù)組形式排列,需要把一維的字節(jié)數(shù)組轉(zhuǎn)為numpy數(shù)組,我們需要知道幾個預(yù)設(shè)值:

1. 點陣的尺寸(寬度width和高度height),用于初始numpy數(shù)組的shape屬性。

2. 點陣的通道數(shù),通常一個點包含了 X Y Z三個通道值,對于不同的傳感器,獲取的點陣信息結(jié)構(gòu)也不一樣,這里舉幾個常見的數(shù)據(jù)信息格式:

xyz_float32:xyz坐標值,用float32四字節(jié)表示一個值

總數(shù)據(jù)長度3*4*width*height

xyz_uint16:xyz坐標值,用uint16雙字節(jié)表示一個值

總數(shù)據(jù)長度(3*2+2)*width*height

xyzijk_float32: 在xyz_float32的基礎(chǔ)上,增加單位法向量值ijk

總數(shù)據(jù)長度6*4*width*height

xyzg_float32: 在xyz_float32的基礎(chǔ)上,增加灰度值gray

總數(shù)據(jù)長度(3*4+1+1)*width*height

xyzrgb_float32: 在xyz_float32的基礎(chǔ)上,增加r,g,b值

總數(shù)據(jù)長度(3*4+3*1+1)*width*height

等...以上格式中,未滿4字節(jié)的信息,一般會使用四字節(jié)對齊。比如xyzrgb_float32,xyz分別使用3個float32,rgb分別使用3個ubyte,共計15個字節(jié),為了對齊4字節(jié),會在最后補齊一字節(jié),做到16字節(jié)結(jié)構(gòu)。

知道上述兩點后,進入讀取數(shù)據(jù)環(huán)節(jié):

已經(jīng)三個變量,w(寬),h(高),data_ptr(原始數(shù)據(jù)數(shù)組指針)。

定義numpy數(shù)據(jù)格式,參照原始數(shù)據(jù)格式

names:通道名稱

formats:通道數(shù)據(jù)格式,'f4'表示四個字節(jié)長度的浮點數(shù),和原始數(shù)據(jù)保持一致

offsets:通道在原始字節(jié)中的偏移量

titles:另外一個名稱(具體不知道)

itemsize:單點數(shù)據(jù)長度,字節(jié)單位

申請一個內(nèi)存,用以存點陣字節(jié)數(shù)組

解析數(shù)據(jù)

得到了一個一維數(shù)組,對象是我們定義的dtype數(shù)據(jù)結(jié)構(gòu),這里已經(jīng)可以通過索引讀取對應(yīng)的數(shù)據(jù)值,注意此時是一維數(shù)組,當我們輸入像素坐標時[x,y]需要通過公式變換:

index%3Dx%2By*widht

查找一個像素位置[100,100]的點信息:

最后,結(jié)構(gòu)體化的數(shù)組并不適合我們后續(xù)做數(shù)據(jù)處理,因此我們需要把結(jié)構(gòu)體數(shù)組轉(zhuǎn)換為非結(jié)構(gòu)體數(shù)組

這里為了后續(xù)處理方便,G,M通道原本Ubyte格式的數(shù)據(jù),也強制轉(zhuǎn)為float32格式。

END


Python_處理陣列式點云_讀取的評論 (共 條)

分享到微博請遵守國家法律
英超| 调兵山市| 象州县| 滨海县| 巴南区| 宜兴市| 阳山县| 邢台市| 浦城县| 雅江县| 深圳市| 河北区| 南木林县| 呼图壁县| 阿克苏市| 三都| 昌都县| 将乐县| 东源县| 安阳县| 定西市| 洛阳市| 南投县| 思茅市| 龙州县| 柞水县| 万年县| 沙雅县| 巍山| 康平县| 延川县| 嘉善县| 板桥市| 宣化县| 固阳县| 宜都市| 湟中县| 沁阳市| 肃北| 杭锦后旗| 永兴县|