日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Halcon例程详解 (深度图转换为3D图像)—— xyz_attrib_to_object_model_3d

發布時間:2023/12/10 ChatGpt 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Halcon例程详解 (深度图转换为3D图像)—— xyz_attrib_to_object_model_3d 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

深度圖向點云圖進行轉換是進行3D檢測項目時會遇到的問題,halcon里也有針對此問題的相關例程,下面對此例程進行分析。通過學習此例程,我們可以掌握如何將一張深度圖像和一張正常二維圖像轉換為3D點云。

二、分析

* 初始化界面 dev_update_off () dev_close_window () * * 讀取Z圖,即為深度圖 read_image (Z, 'mreut_dgm_2.0.tif') get_image_size (Z, Width, Height) * * 讀取灰度圖,將其灰度值作為屬性添加到3D模型中。 read_image (AerialImage, 'mreut4_3.png') * * 用灰度圖生成標簽圖像,采用的方法很簡單,只做展示用。 * 自適應的閾值處理方法,將圖像分為3個對象,用紅藍綠三種顏色表示。參數4表示高斯平滑的核的大小。如下圖所示。 auto_threshold (AerialImage, Regions, 4) *將分割后的區域生成標簽圖像。 * region_to_label根據分割區域的索引(1…n)將輸入區域轉換成標簽圖像,即,第一區域被繪成灰度值1,第二區域被繪成灰度值2。 region_to_label (Regions, LabelImage, 'byte', Width, Height) * * 將灰度圖和標簽圖像合并為1個2通道復合圖像。 compose2 (AerialImage, LabelImage, MultiChannelAttribImage) * * 在常規網格中創建包含X和Y坐標的灰度漸變圖像。 GroundResolution := 2.0 * 用一階方程來生成平面(輸出圖像,類型,垂直方向的參數,水平方向的參數,0階參數,參考點的行坐標,列坐標,圖像的寬高)。 * ImageSurface(r,c) = Alpha(r - Row) +Beta(c - Column) +Gamma gen_image_surface_first_order (X, 'real', 0, GroundResolution, 0, 0, 0, Width, Height) gen_image_surface_first_order (Y, 'real', -GroundResolution, 0, 0, 0, 0, Width, Height)


* * 創建3D模型 * 屬性名 AttribName := ['&gray','&terrain'] * 該算子將包含3D點的X、Y和Z坐標的圖像三元組轉換為3D對象模型。 * 從上面的程序可以看出,XY圖像為與Z圖同樣大小的灰度漸變圖像,MultiChannelAttribImage為兩通道的屬性圖像,包含灰度圖像和分割后的標簽圖像。 * 其中MultiChannelAttribImage的圖像通道必須和AttribName的維度大小相同。 * 此時生成的為點云,下面用三角法生成三維圖像。 xyz_attrib_to_object_model_3d (X, Y, Z, MultiChannelAttribImage, AttribName, ObjectModel3D) * * Display results * 設置窗口1的屬性,顯示“地形類型” dev_open_window (Height / 2, 0, Width / 2, Height / 2, 'black', WindowHandle1) dev_set_part (0, 0, Height - 1, Width - 1) set_display_font (WindowHandle1, 16, 'mono', 'true', 'false') dev_set_color (['red','green','blue']) dev_set_draw ('fill') dev_display (Regions) disp_message (WindowHandle1, 'Terrain types', 'window', 12, 12, 'black', 'true') * 設置窗口2的屬性,顯示“鳥瞰圖” dev_open_window (0, 0, Width / 2, Height / 2, 'black', WindowHandle2) set_display_font (WindowHandle2, 16, 'mono', 'true', 'false') dev_display (AerialImage) disp_message (WindowHandle2, 'Aerial image', 'window', 12, 12, 'black', 'true') * 設置窗口3的屬性,顯示“Z圖” dev_open_window (0, Width / 2 + 8, Width, Height, 'gray', WindowHandle3) set_display_font (WindowHandle3, 16, 'mono', 'true', 'false') dev_display (Z) disp_message (WindowHandle3, 'Digital surface model', 'window', 12, 12, 'black', 'true') disp_continue_message (WindowHandle3, 'black', 'true') stop () * * 對對象模型進行快速的三角測量,以便更好地進行可視化。 * 該算子通過三角法將點云重建為三維模型。 prepare_object_model_3d (ObjectModel3D, 'segmentation', 'true', [], []) * 交互式地可視化3d對象模型 * 創建3D模型的位姿(平移量,旋轉量,平移旋轉的順序,旋轉值的意義,視圖轉換,位姿) create_pose (-620, -85, 17000, 135, 2, 10, 'Rp+T', 'gba', 'point', Pose) Instructions := 'Rotate: Left button' Instructions[1] := 'Zoom: Shift + left button' Instructions[2] := 'Move: Ctrl + left button' *顯示3D模型 visualize_object_model_3d (WindowHandle3, ObjectModel3D, [], Pose, ['color_attrib','color_attrib_start','color_attrib_end'], ['&gray',0,255], ['Created 3D model','Attribute used for visualization: \'&gray\''], [], Instructions, PoseOut) visualize_object_model_3d (WindowHandle3, ObjectModel3D, [], PoseOut, ['color_attrib','lut'], ['&terrain','color1'], ['Created 3D model','Attribute used for visualization: \'&terrain\''], [], Instructions, PoseOut) disp_end_of_program_message (WindowHandle3, 'black', 'true')


總結

通過此例程,可以初步了解3D轉換的具體步驟。

  • 根據灰度圖,創建多通道的復合圖像。
  • 創建灰度漸變圖像,X和Y
  • 使用算子xyz_attrib_to_object_model_3d生成點云圖。
  • 三角化網格 prepare_object_model_3d (ObjectModel3D, ‘segmentation’, ‘true’, [], [])。
  • 顯示3D模型visualize_object_model_3d。
    總結下,雖然讀完了整個例程,但還是有幾個疑問。
  • 為什么一定要要創建灰度漸變圖像,灰度值的朝向有什么意義。
  • 三角化方法的原理還不太清楚
  • 再更:1,問題一搞清楚了,灰度漸變圖像代表圖像在X,Y平面的尺度。
    2,三角化是三維重建的經典算法,根據平面內三位點的拓撲連接關系獲得一個三角網格曲面模型。

    總結

    以上是生活随笔為你收集整理的Halcon例程详解 (深度图转换为3D图像)—— xyz_attrib_to_object_model_3d的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。