原创 struct 大小的計算

結構體是一種複合數據類型,通常編譯器會自動的進行其成員變量的對齊,已提高數據存取的效率。在默認情況下,編譯器爲結構體的成員按照自然對齊(natural alignment)條方式分配存儲空間,各個成員按照其聲明順序在存儲器中順序存

原创 聲音分貝的概念,dBSPL.dBm,dBu,dBV,dBFS

需要做個音頻的PPM表,看着一堆的音頻術語真是懵了,苦苦在網上扒了幾天的文檔,終於有了點收穫,下面關於聲音的分貝做個總結。 分貝 Decibel 分貝(dB)是一個對數單位(logarithmic unit), 它和很多常見的

原创 SLAM入門之視覺里程計(6):相機標定 張正友經典標定法詳解

想要從二維圖像中獲取到場景的三維信息,相機的內參數是必須的,在SLAM中,相機通常是提前標定好的。張正友于1998年在論文:”A Flexible New Technique fro Camera Calibration”提出了基於單平面

原创 SLAM入門之視覺里程計(4):基礎矩陣的估計

在上篇文章中,介紹了三位場景中的同一個三維點在不同視角下的像點存在着一種約束關係:對極約束,基礎矩陣是這種約束關係的代數表示,並且這種約束關係獨立與場景的結構,只依賴與相機的內參和外參(相對位姿)。這樣可以通過通過匹配的像點對計算出兩幅圖

原创 SLAM入門之視覺里程計(2):相機模型(內參數,外參數)

相機成像的過程實際是將真實的三維空間中的三維點映射到成像平面(二維空間)過程,可以簡單的使用小孔成像模型來描述該過程,以瞭解成像過程中三維空間到二位圖像空間的變換過程。 本文包含兩部分內容,首先介紹小孔成像模型的各種幾何關係;接着描述了

原创 圖像處理基礎(4):高斯濾波器詳解

本文主要介紹了高斯濾波器的原理及其實現過程 高斯濾波器是一種線性濾波器,能夠有效的抑制噪聲,平滑圖像。其作用原理和均值濾波器類似,都是取濾波器窗口內的像素的均值作爲輸出。其窗口模板的係數和均值濾波器不同,均值濾波器的模板係數都是相同的爲1

原创 SLAM入門之視覺里程計(3):兩視圖對極約束 基礎矩陣

在上篇相機模型中介紹了圖像的成像過程,場景中的三維點通過“小孔”映射到二維的圖像平面,可以使用下面公式描述: x=MX 其中,c 是圖像中的像點,M 是一個3×4 的相機矩陣,X 是場景中的三維點。 通過小孔相機模型,可知假如從像點x

原创 SLAM入門之視覺里程計(5):單應矩陣

在之前的博文OpenCV,計算兩幅圖像的單應矩陣,介紹調用OpenCV中的函數,通過4對對應的點的座標計算兩個圖像之間單應矩陣H ,然後調用射影變換函數,將一幅圖像變換到另一幅圖像的視角中。當時只是知道通過單應矩陣,能夠將圖像1中的像素座

原创 圖像處理基礎(2):自適應中值濾波器(基於OpenCV實現)

本文主要介紹了自適應的中值濾波器,並基於OpenCV實現了該濾波器,並且將自適應的中值濾波器和常規的中值濾波器對不同概率的椒鹽噪聲的過濾效果進行了對比。最後,對中值濾波器的優缺點了進行了總結。 空間濾波器 一個空間濾波器包括兩個部分:

原创 圖像處理基礎(3):均值濾波器及其變種

均值濾波器可以歸爲低通濾波器,是一種線性濾波器,其輸出爲鄰域模板內的像素的簡單平均值,主要用於圖像的模糊和降噪。 均值濾波器的概念非常的直觀,使用濾波器窗口內的像素的平均灰度值代替圖像中的像素值,這樣的結果就是降低圖像中的“尖銳”變化。

原创 生成特定分貝的音頻波形

在處理音頻的時候的有時候需要特定分貝(如-10dB)的音頻波形,本文主要介紹如何生成特定分貝數的音頻文件。有以下幾個方面: 簡單的生成特定分貝的波形 模擬頻率和數字頻率 波形生成 代碼的封裝 正弦波、方形波、鋸齒波、三角波的生成 生

原创 SLAM入門之視覺里程計(1):特徵點的匹配

SLAM 主要分爲兩個部分:前端和後端,前端也就是視覺里程計(VO),它根據相鄰圖像的信息粗略的估計出相機的運動,給後端提供較好的初始值。VO的實現方法可以根據是否需要提取特徵分爲兩類:基於特徵點的方法,不使用特徵點的直接方法。 基於特徵

原创 圖像處理基礎(5):雙邊濾波器

雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結合圖像的空間鄰近度和像素值相似度的一種折衷處理,同時考慮空域信息和灰度相似性,達到保邊去噪的目的。 雙邊濾波器之所以能夠做到在平滑去噪的同時還能夠很好的保存邊緣(Ed

原创 圖像處理基礎(1):噪聲的添加和過濾

總結學習下圖像處理方面基礎知識。 這是第一篇,簡單的介紹下使用OpenCV的三個基本功能: 圖像的讀取 圖像的顯示 訪問圖像的像素值 然後概述下圖像噪聲的類型,併爲圖像添加兩種常見的噪聲:高斯噪聲和椒鹽噪聲。 最後,使用中值濾波和均

原创 Golomb和Exp-Golomb編碼原理及實現

2017年的第一篇博文。 本文主要有以下三部分內容: 介紹了Golomb編碼,及其兩個變種:Golomb-Rice和Exp-Golomb的基本原理 C++實現了一個簡單的BitStream庫,能夠方便在bit流和byte數字之間進行轉換