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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三维重建9:点云图像的滤波方法小结

發布時間:2023/12/31 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三维重建9:点云图像的滤波方法小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????? ? 摘抄下來,如有不適,請告知刪除。

??????? 原文鏈接:PCL—低層次視覺—點云濾波(初步處理)

??????? 若非涉及到數據精度級別的底層處理,使用離群點去除算法就可以了。


點云濾波的概念

  點云濾波是點云處理的基本步驟,也是進行 high level 三維圖像處理之前必須要進行的預處理。其作用類似于信號處理中的濾波,但實現手段卻和信號處理不一樣。我認為原因有以下幾個方面:

  • 點云不是函數,對于復雜三維外形其x,y,z之間并非以某種規律或某種數值關系定義。所以點云無法建立橫縱坐標之間的聯系。
  • 點云在空間中是離散的。和圖像,信號不一樣,并不定義在某個區域上,無法以某種模板的形式對其進行濾波。換言之,點云沒有圖像與信號那么明顯的定義域。
  • 點云在空間中分布很廣泛。歷整個點云中的每個點,并建立點與點之間相互位置關系成了最大難點。不像圖像與信號,可以有跡可循。
  • 點云濾波依賴于幾何信息,而不是數值關系。
  •   綜上所述,點云濾波只在抽象意義上與信號,圖像濾波類似。因為濾波的功能都是突出需要的信息。

    點云濾波的方法

      PCL常規濾波手段均進行了很好的封裝。對點云的濾波通過調用各個濾波器對象來完成。主要的濾波器有直通濾波器,體素格濾波器,統計濾波器,半徑濾波器?等。不同特性的濾波器構成了較為完整的點云前處理族,并組合使用完成任務。實際上,濾波手段的選擇和采集方式是密不可分的。

  • 如果使用線結構光掃描的方式采集點云,必然物體沿z向分布較廣,但x,y向的分布處于有限范圍內。此時可使用直通濾波器,確定點云在x或y方向上的范圍,可較快剪除離群點,達到第一步粗處理的目的。
  • 如果使用高分辨率相機等設備對點云進行采集,往往點云會較為密集。過多的點云數量會對后續分割工作帶來困難。體素格濾波器可以達到向下采樣同時不破壞點云本身幾何結構的功能。點云幾何結構不僅是宏觀的幾何外形,也包括其微觀的排列方式,比如橫向相似的尺寸,縱向相同的距離。隨機下采樣雖然效率比體素濾波器高,但會破壞點云微觀結構。
  • 統計濾波器用于去除明顯離群點(離群點往往由測量噪聲引入)。其特征是在空間中分布稀疏,可以理解為:每個點都表達一定信息量,某個區域點越密集則可能信息量越大。噪聲信息屬于無用信息,信息量較小。所以離群點表達的信息可以忽略不計。考慮到離群點的特征,則可以定義某處點云小于某個密度,既點云無效。計算每個點到其最近的k個點平均距離。則點云中所有點的距離應構成高斯分布。給定均值與方差,可剔除3∑之外的點。
  • 半徑濾波器與統計濾波器相比更加簡單粗暴。以某點為中心畫一個圓計算落在該圓中點的數量,當數量大于給定值時,則保留該點,數量小于給定值則剔除該點。此算法運行速度快,依序迭代留下的點一定是最密集的,但是圓的半徑和圓內點的數目都需要人工指定。
  •   實際上點云濾波的手段和傳統的信號濾波與圖像濾波在自動化程度,濾波效果上還有很大的差距。學者大多關注圖像識別與配準算法在點云處理方面的移植,而對濾波算法關注較少。其實點云前處理對測量精度與識別速度都有很大影響。

    ?

    點云庫對濾波算法的實現

      點云庫中已經包含了上述所有濾波算法。PCL濾波算法的實現是通過濾波器類來完成的,需要實現濾波功能時則新建一個濾波器對象并設置參數。從而保證可以針對不同的濾波任務,使用不同參數的濾波器對點云進行處理。

    直通濾波器:

    // Create the filtering object pcl::PassThrough<pcl::PointXYZ> pass; pass.setInputCloud (cloud); pass.setFilterFieldName ("z"); pass.setFilterLimits (0.0, 1.0); //pass.setFilterLimitsNegative (true); pass.filter (*cloud_filtered);

    體素濾波器:

    // Create the filtering objectpcl::VoxelGrid<pcl::PCLPointCloud2> sor;sor.setInputCloud (cloud);sor.setLeafSize (0.01f, 0.01f, 0.01f);sor.filter (*cloud_filtered);

     統計濾波器:

    // Create the filtering objectpcl::StatisticalOutlierRemoval<pcl::PointXYZ> sor;sor.setInputCloud (cloud);sor.setMeanK (50);sor.setStddevMulThresh (1.0);sor.filter (*cloud_filtered);  半徑濾波器: // build the filterpcl::RadiusOutlierRemoval<pcl::PointXYZ> outrem;outrem.setInputCloud(cloud);outrem.setRadiusSearch(0.8);outrem.setMinNeighborsInRadius (2);// apply filteroutrem.filter (*cloud_filtered);  顯然,不同的濾波器在濾波過程中,總是先創建一個對象,再設置對象參數,最后調用濾波函數對點云進行處理(點云為智能指針指向的一塊區域)

    總結

    以上是生活随笔為你收集整理的三维重建9:点云图像的滤波方法小结的全部內容,希望文章能夠幫你解決所遇到的問題。

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