女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

3D相機點云數據“如何讀取”

新機器視覺 ? 來源:新機器視覺 ? 2023-07-12 10:28 ? 次閱讀

Halcon|讀取3D相機點云數據

最近發現很多小伙伴在使用Halcon處理3D工業相機掃描結果的時候遇到了“如何讀取”的問題。一般的3D工業相機儲存數據的格式有txt格式、tif格式、csv格式、ply格式、ptx格式、bin格式、obj格式等。

txt格式

讀取txt文件生成3D模型一般需要分析txt文件的儲存格式,下圖是我使用的工業相機儲存的部分txt數據:

60ebb6c0-2045-11ee-962d-dac502259ad0.png 經過分析,前3列為X、Y、Z坐標,第4列到第6列為每一點的法線坐標nX、nY、nZ,第7列到第9列為灰度值。因此我們采用以下代碼重構3D模型:

open_file ('data.txt', 'input', XYZ) #打開文件
X :=[]
Y :=[]
Z :=[]
nX :=[]
nY :=[]
nZ :=[]
Gray :=[]
fread_line (XYZ, OutLine, IsEOF) #讀文件中一行的字符串
tuple_split (OutLine, ' ', Substrings) #根據空格分割一行的字符串
while (IsEOF==0) #將X Y Z nX nY nZ Gray分別存儲在不同的元組中
  X :=[X,Substrings[0]]
  Y :=[Y,Substrings[1]]
  Z :=[Z,Substrings[2]]
  nX :=[nX,Substrings[3]]
  nY :=[nY,Substrings[4]]
  nZ :=[nY,Substrings[5]]
  Gray :=[Gray,Substrings[6]]
  fread_line (XYZ, OutLine, IsEOF)
  tuple_split (OutLine, ' ', Substrings)
endwhile
close_file (XYZ) #關閉文件
tuple_number (X, NumberX) 
tuple_number (Y, NumberY) 
tuple_number (Z, NumberZ)  #將字符串轉化為數字
gen_object_model_3d_from_points (NumberX, NumberY, NumberZ, ObjectModel3D) #構建3D模型
visualize_object_model_3d (3600, ObjectModel3D, [], [], [], [], [], [], [], PoseOut) #顯示3D模型

代碼中的IsEOF參數為循環的判斷變量,當文件未到末尾時,IsEOF為0;當文件到達末尾時,IsEOF為1。

3D模型顯示結果如下:
61053fc8-2045-11ee-962d-dac502259ad0.png
注意:1、通過元組生成3D模型時,采用gen_object_model_3d_from_points算子;2、一些3D相機的txt文件的數據之間采用@相連,此時應使用@對字符串進行分割。

tif格式

tif圖片格式是工業相機損失較小的圖片格式。一般3D相機會將不同的數據保存在不同的tif圖片中。下圖是我使用的工業相機儲存的tif文件:
612e75e6-2045-11ee-962d-dac502259ad0.png
其中,PointCloud_X
PointCloud_Y PointCloud_Z為將點云的XYZ坐標作為灰度值生成的圖片,NormalMap_X NormalMap_Y
NormalMap_Z為將點云的XYZ法線坐標作為灰度值生成的圖片,Texture為一般的灰度圖片。可使用以下代碼重構3D模型:

61493e9e-2045-11ee-962d-dac502259ad0.png

615da82a-2045-11ee-962d-dac502259ad0.png
其中,讀取的PointcloudX PointcloudY PointcloudZ等圖片也可以先做Blob分析之后再合成3D模型。此時,若PointcloudX PointcloudY PointcloudZ的大小不一致,代碼:

61750f1a-2045-11ee-962d-dac502259ad0.png

生成的3D模型將以PointcloudX為準。

注意:與算子gen_object_model_3d_from_points作對比,當通過圖片生成3D模型時,采用xyz_to_object_model_3d算子。

Halcon直接讀取

我購買的工業相機可以直接采用以下代碼實時抓取數據,可以作為其他工業相機實施抓取數據的參考。

open_framegrabber ('PhoXi', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'default', '2018-08-034-LC3', -1, -1, AcqHandle) #打開相機
get_framegrabber_param (AcqHandle, 'revision', Revision) #得到相機參數
GrabDataItems:=['PointCloud', 'Texture', 'NormalMap', 'ConfidenceMap']
set_framegrabber_param (AcqHandle, 'grab_data_items', GrabDataItems) #設置相機參數
grab_data (ImageData, Region, Contours, AcqHandle, Data) #抓取數據
select_obj (ImageData, XYZ, 1) #選擇3維數據XYZ(點云坐標)
select_obj (ImageData, Texture, 2) #選擇1維度數據Texture
select_obj (ImageData, Normals, 3) #選擇3維數據Normals(法線)
select_obj (ImageData, Confidence, 4) #選擇1維數據Confidence
decompose3 (XYZ, XImage, YImage, ZImage) #將XYZ分解為X Y Z三通道
decompose3(Normals, nX, nY, nZ)  #將Normals分解為nX nY nZ三通道

同樣,可以對其中任意一張圖像做Blob分析等操作,也可采用:

618cee1e-2045-11ee-962d-dac502259ad0.png

生成3D模型并進行顯示。

CSV格式

CSV格式(Comma-Separated Values)直譯為逗號分隔值(也稱字符分隔值,因為分隔字符也可以不是逗號),是一種以逗號作為分隔符,對數據進行直接記錄的文件。

讀取csv文件生成3D模型一般需要分析csv文件的儲存格式。我們先創建一個csv文件。如下圖所示,直接創建txt文件,每一行保存一個點云坐標,不同坐標之間采用“,”作為分隔符,另存為csv文件即可。
61a99104-2045-11ee-962d-dac502259ad0.png

61c31f5c-2045-11ee-962d-dac502259ad0.png

結果如下:
62023d5e-2045-11ee-962d-dac502259ad0.png

ply格式

ply是Halcon可識別的3D模型儲存格式,可以直接打開。

622d84e6-2045-11ee-962d-dac502259ad0.png

結果如下:
62505430-2045-11ee-962d-dac502259ad0.png

責任編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7241

    瀏覽量

    91007
  • 儲存
    +關注

    關注

    3

    文章

    202

    瀏覽量

    22640
  • 3D相機
    +關注

    關注

    0

    文章

    119

    瀏覽量

    8395

原文標題:Halcon|讀取3D相機點云數據

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于3D的多任務模型在板端實現高效部署

    對于自動駕駛應用來說,3D 場景感知至關重要。3D數據就是具有3D特征的
    的頭像 發表于 12-28 16:35 ?1962次閱讀
    基于<b class='flag-5'>3D</b><b class='flag-5'>點</b><b class='flag-5'>云</b>的多任務模型在板端實現高效部署

    基于深度學習的方法在處理3D進行缺陷分類應用

    背景部分介紹了3D應用領域中公開可訪問的數據集的重要性,這些數據集對于分析和比較各種模型至關重要。研究人員專門設計了各種
    的頭像 發表于 02-22 16:16 ?1770次閱讀
    基于深度學習的方法在處理<b class='flag-5'>3D</b><b class='flag-5'>點</b><b class='flag-5'>云</b>進行缺陷分類應用

    友思特C系列3D相機:實時3D云圖像

    3D相機
    虹科光電
    發布于 :2024年01月10日 17:39:25

    如何同時獲取2d圖像序列和相應的3d

    如何同時獲取2d圖像序列和相應的3d?以上來自于谷歌翻譯以下為原文How to obtain the sequence of 2d im
    發表于 11-13 11:25

    3D技術介紹及其與VR體驗的關系

    ;x>nkedIn上發表了一篇跟澳大利亞科技公司優立(Euclideon)所使用的數據有關的文章,并在業內引起了一番討論。 1.
    發表于 09-15 09:28 ?20次下載

    問題的介紹及3D技術在VR中的應用

    1. 的問題 是由3D掃描硬件收集的數據,如FARO的Focus
    發表于 09-27 15:27 ?17次下載

    3D相機的類別及工作原理

    3D相機的不同之處在于,它可以測量普通數碼相機無法測量的深度數據。所謂深度數據,就是像素到相機
    的頭像 發表于 09-24 12:40 ?1.9w次閱讀

    谷歌AI發布3D物體數據集,附帶標記邊界框、相機位姿、稀疏

    見過3D物體數據集,見過會動的3D物體數據集嗎? 每段動態視頻都 以目標為中心拍攝,不僅自帶標注整體的邊界框,每個視頻還附帶相機位姿和稀疏
    的頭像 發表于 11-13 14:28 ?2498次閱讀

    3D結構光相機的工作原理及優點

    結構光3D相機,一般指采用多幅條紋光柵,即先通過光柵投射模組按照時間序列依次投射在被測物體表面,再通過雙目對物體表面的光柵進行拍照,基于事先編碼規則進行解碼和雙目視差匹配,從而獲得高精度的3D
    發表于 04-22 10:10 ?6977次閱讀

    何為3D語義分割

    融合標注使用的3D標注工具仍以3D立體框為主,但在3D數據以外,還需要使用2
    的頭像 發表于 07-21 15:52 ?9356次閱讀

    如何試用MediaPipe實現人臉3D數據提取

    本文介紹如何試用MediaPipe實現人臉3D數據提取,提取的數據為人臉468位。
    發表于 02-23 17:47 ?1809次閱讀

    3D數據集在3D數字化技術中的應用

    隨著計算機視覺技術的不斷發展,3D 數字化技術已經成為了當今工業制造領域和三維醫學影像領域的關鍵技術。然而,構建高精度、高分辨率的 3D 數據
    的頭像 發表于 05-06 16:46 ?1784次閱讀

    自動駕駛3D語義分割數據標注

    在自動駕駛環境感知系統中,如何獲取高精度實時路況數據,是決定自動駕駛系統行車安全的關鍵。 目前主流的兩種感知技術路徑“純視覺”與“高精地圖+激光雷達”中,由于激光雷達采集的3D
    發表于 06-06 09:48 ?3次下載
    自動駕駛<b class='flag-5'>3D</b><b class='flag-5'>點</b><b class='flag-5'>云</b>語義分割<b class='flag-5'>數據</b>標注

    基于3D障礙物檢測介紹

    基于3D障礙物檢測 主要有以下步驟: 數據的處理 基于
    的頭像 發表于 06-26 10:22 ?1313次閱讀
    基于<b class='flag-5'>點</b><b class='flag-5'>云</b>的<b class='flag-5'>3D</b>障礙物檢測介紹

    基于深度學習的3D實例分割方法

    3D實例分割(3DIS)是3D領域深度學習的核心問題。給定由云表示的 3D 場景,我們尋求為每個
    發表于 11-13 10:34 ?3134次閱讀
    基于深度學習的<b class='flag-5'>3D</b><b class='flag-5'>點</b><b class='flag-5'>云</b>實例分割方法