Filter(濾波器)是 OrbbecSDK v2 提供的后處理模塊,用于對傳感器輸出的原始幀進(jìn)行處理,常見(jiàn)用途包括:
? 去除深度圖中的噪聲和空洞
? 對深度圖進(jìn)行空間/時(shí)序平滑
? 對圖像進(jìn)行下采樣,降低分辨率以減少數據量、提升后續處理性能
? 將深度流與彩色流進(jìn)行軟件方式對齊
? 轉換幀的像素格式
? 生成點(diǎn)云數據
? 注意:Filter 不只針對深度流(Depth),部分 Filter 適用于彩色流(Color)或紅外流(IR),使用時(shí)請注意各 Filter 的適用流類(lèi)型。
方式 | 說(shuō)明 | 適用場(chǎng)景 |
直接創(chuàng )建 Filter | 明確指定要使用哪個(gè) Filter,自行設置參數 | 需要精細控制,定制化場(chǎng)景 |
推薦 Filter 列表 | 通過(guò)指定 Sensor 獲取,SDK 針對該 Sensor 的流類(lèi)型返回推薦的 Filter 組合,只能處理對應流類(lèi)型的幀 | 快速集成,通用場(chǎng)景 |
? 提示:不確定設備支持哪種?不確定選哪種?建議先從“推薦 Filter 列表”入手,能快速跑通;需要定制時(shí)再使用“直接創(chuàng )建”。
Filter 名稱(chēng) | 適用流 | 用途簡(jiǎn)介 | 類(lèi)型 |
PointCloudFilter | Depth / Depth+Color | 將深度幀轉換為 XYZ 點(diǎn)云,或將深度+彩色幀轉換為 RGBD 點(diǎn)云(XYZ+RGB) | 變換類(lèi) |
Align | Depth + Color | 通過(guò)軟件方式將深度流與彩色流進(jìn)行空間對齊 | 變換類(lèi) |
FormatConvertFilter | Color / IR | 像素格式轉換(如 MJPG→RGB、YUYV→BGR 等) | 變換類(lèi) |
DisparityTransform | Depth | 深度圖與視差圖之間的互相轉換 | 變換類(lèi) |
SequenceIdFilter | Depth / IR | 按幀序列號篩選,配合 HDR 使用 | 流控類(lèi) |
DecimationFilter | Depth / IR / Color | 對圖像進(jìn)行降采樣,縮小分辨率 | 采樣/閾值類(lèi) |
ThresholdFilter | Depth | 將超出指定距離范圍的深度值置零 | 采樣/閾值類(lèi) |
NoiseRemovalFilter | Depth | 去除深度圖中的噪聲(基礎版) | 降噪類(lèi) |
FalsePositiveFilter | Depth | 去除深度圖中的各種噪聲(高級版) | 降噪類(lèi) |
SpatialAdvancedFilter | Depth | 邊緣保持型空間平滑,效果好 | 空間平滑類(lèi) |
SpatialFastFilter | Depth | 快速空間平滑,CPU 占用低 | 空間平滑類(lèi) |
SpatialModerateFilter | Depth | 均衡速度與質(zhì)量的空間平滑 | 空間平滑類(lèi) |
HoleFillingFilter | Depth | 填充深度圖中的空洞 | 空間平滑類(lèi) |
TemporalFilter | Depth | 融合相鄰幀數據,時(shí)序平滑 | 時(shí)序平滑類(lèi) |
注意:NoiseRemovalFilter在SDK內部自動(dòng)調用,僅可控制使能或調節相關(guān)參數,不可單獨創(chuàng )建。其他所有 Filter 均為公開(kāi)類(lèi)型,無(wú)需激活碼,直接創(chuàng )建即可使用。
同步處理(推薦,適合大多數場(chǎng)景)
auto outFrame = filter->process(inFrame);
if(outFrame) {
// 使用處理后的幀
}
異步處理(適合高幀率或流水線(xiàn)場(chǎng)景)
// 設置回調,處理完成后自動(dòng)觸發(fā)
filter->setCallBack([](std::shared_ptr<ob::Frame> outFrame) {
if(outFrame) {
// 使用處理后的幀
}
});
// 將幀推入 Filter 的處理隊列
filter->pushFrame(inFrame);
? 注意:`process()` 在某些情況下會(huì )返回 `nullptr`,調用后必須判斷返回值是否為空再使用。