OpenCV與Linux基礎知識

OpenCV使用優化了的C和C++代碼實現。它對IPP不存在任何依賴。但如果安裝了IPP,那麼OpenCV將會通過自動載入IPP動態鏈接庫來獲取IPP的優勢,來提升速度。

 

…/opencv/docs/子目錄中有相應的HTML格式的幫助文件。

 

圖像處理的腐蝕膨脹

 

腐蝕的具體操作是:用一個結構元素(一般是3×3的大小)掃描圖像中的每一個像素,用結構元素中的每一個像素與其覆蓋的像素做“與”操作,如果都爲1,則該像素爲1,否則爲0。 

膨脹的具體操作是:用一個結構元素(一般是3×3的大小)掃描圖像中的每一個像素,用結構元素中的每一個像素與其覆蓋的像素做“與”操作,如果都爲0,則該像素爲0,否則爲1。

 

腐蝕的作用是消除物體邊界點,使目標縮小,可以消除小於結構元素的噪聲點;膨脹的作用是將與物體接觸的所有背景點合併到物體中,使目標增大,可添補目標中的空洞。

 

圖像處理的開運算閉運算

開運算是先腐蝕後膨脹的過程,可以消除圖像上細小的噪聲,並平滑物體邊界。 

閉運算時先膨脹後腐蝕的過程,可以填充物體內細小的空洞,並平滑物體邊界。

 

圖像細化一般作爲一種圖像預處理技術出現,目的是提取源圖像的骨架,即是將原圖像中線條寬度大於1個像素的線條細化成只有一個像素寬,形成“骨架”,形成骨架後能比較容易的分析圖像,如提取圖像的特徵。

 

細化基本思想是“層層剝奪”,即從線條邊緣開始一層一層向裏剝奪,直到線條剩下一個像素的爲止。圖像細化大大地壓縮了原始圖像地數據量,並保持其形狀的基本拓撲結構不變,從而爲文字識別中的特徵抽取等應用奠定了基礎。細化算法應滿足以下條件: 

① 將條形區域變成一條薄線; ② 薄線應位與原條形區域的中心; ③ 薄線應保持原圖像的拓撲特性。 

細化分成串行細化和並行細化,串行細化即是一邊檢測滿足細化條件的點,一邊刪除細化點;並行細化即是檢測細化點的時候不進行點的刪除只進行標記,而在檢測完整幅圖像後一次性去除要細化的點。 

常用的圖像細化算法有hilditch算法,pavlidis算法和rosenfeld算法等。 

注:進行細化算法前要先對圖像進行二值化,即圖像中只包含“黑”和“白”兩種顏色。

 

椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產生的黑白相間的亮暗點噪聲。椒鹽噪聲往往由圖像切割引起。

 

椒鹽噪聲是指兩種噪聲,一種是鹽噪聲(salt noise),另一種是胡椒噪聲(pepper noise)。鹽=白色,椒=黑色。前者是高灰度噪聲,後者屬於低灰度噪聲。一般兩種噪聲同時出現,呈現在圖像上就是黑白雜點。

 

高斯噪聲是指它的概率密度函數服從高斯分佈(即正態分佈)的一類噪聲。常見的高斯噪聲包括起伏噪聲、宇宙噪聲、熱噪聲和散粒噪聲等等。

 

高斯分佈,也稱正態分佈,又稱常態分佈,記爲Nμσ^2),其中μσ^2爲分佈的參數,分別爲高斯分佈的期望和方差。當有確定值時,p(x)也就確定了,特別當μ=0σ^2=1時,X的分佈爲標準正態分佈

 

時域是描述數學函數或物理信號對時間的關係。例如一個信號的時域波形可以表達信號隨着時間的變化。

時域是真實世界,是惟一實際存在的域。因爲我們的經歷都是在時域中發展和驗證的,已經習慣於事件按時間的先後順序地發生。而評估數字產品的性能時,通常在時域中進行分析,因爲產品的性能最終就是在時域中測量的。

 

頻域(頻率域)——自變量是頻率,即橫軸是頻率,縱軸是該頻率信號的幅度,也就是通常說的頻譜圖。頻譜圖描述了信號的頻率結構及頻率與該頻率信號幅度的關係。

對信號進行時域分析時,有時一些信號的時域參數相同,但並不能說明信號就完全相同。因爲信號不僅隨時間變化,還與頻率、相位等信息有關,這就需要進一步分析信號的頻率結構,並在頻率域中對信號進行描述。動態信號從時間域變換到頻率域主要通過傅立葉級數和傅立葉變換實現。週期信號靠傅立葉級數,非週期信號靠傅立葉變換。

 

時域波形的下降時間也有一個相應的值。根據邏輯系列可知,下降時間通常要比上升時間短一些,這是由典型CMOS輸出驅動器的設計造成的。在典型的輸出驅動器中,p管和n管在電源軌道VccVss間是串聯的,輸出連在這個兩個管子的中間。在任一時間,只有一個晶體管導通,至於是哪一個管子導通取決於輸出的高或低狀態。

 

正弦波是頻域中唯一存在的波形這是頻域中最重要的規則,即正弦波是對頻域的描述,因爲時域中的任何波形都可用正弦波合成。這是正弦波的一個非常重要的性質。然而,它並不是正弦波的獨有特性,還有許多其他的波形也有這樣的性質。正弦波有四個性質使它可以有效地描述其他任一波形:

1)時域中的任何波形都可以由正弦波的組合完全且惟一地描述。

2)任何兩個頻率不同的正弦波都是正交的。如果將兩個正弦波相乘並在整個時間軸上求積分,則積分值爲零。這說明可以將不同的頻率分量相互分離開。

3)正弦波有精確的數學定義。

4)正弦波及其微分值處處存在,沒有上下邊界。

 

 

 

(Linux)內核是(Linux)操作系統的核心,一般包含五大部分:進程管理、存儲管理、文件管理、設備管理和網絡管理,是一組程序模塊,具有訪問硬件設備和所有主存空間的權限,是僅有的能夠執行特權指令的程序。主要功能是:資源抽象、資源分配、資源共享。(資源是指CPU、內存等。)在內核基礎上掛載第三方軟件便構成操作系統,Ubuntu、RedHat、Fedora、Debian等都是基於Linux內核(版本號可能不同)的不同操作系統。

 

內核函數對用戶是完全透明的,用戶想要調用內核函數只有兩種途徑:一是 應用程序→系統調用(程序接口)→操作系統;二是 操作命令→系統程序(作業接口)→操作系統。

 

內核是不是指的就是用shell控制的東西?

shell命令可能是普通的應用程序,也可能是庫函數或系統調用(你可以理解爲內核函數)。

如果你想查看某命令是普通shell命令,還是庫函數或系統調用,可以在終端輸入“man 命令”查看。如man open,左上角應該是OPEN(2)。1 表示普通shell命令,2 表示系統調用,3 表示庫函數。

 

注:庫函數事實上是內核函數的封裝,介於應用程序與內核函數之間。應用程序是不能直接訪問內核函數的,必須通過庫函數。這是一種保護內核函數的一種機制。

 

事實上很多時候我們都要用到內核函數,只是我們並不知道而已,如打開文件要調用open()、關閉文件要調用close()等等

 

Linux移植到Zedboard的文件意義

boot_image目錄:

-- system.bit配置FPGAbit文件

-- u-boot.elf引導linux需要的Second-Stage boot loader

-- zynq_fsbl.elf配置ARM PS系統的First-Stage boot loader(FSBL)

doc目錄:

-- README.txt – 說明文件

hw目錄:

-- EDK 14.1版本的XPS工程,用來生成硬件文件和bit文件

linux目錄:

-- devicetree_ramdisk.dts – 設備樹源代碼

-- .config – Linux內核配置文件,用來生成zImage

sd_image目錄:

--BOOT.BIN 使用boot_images中的三個文件生成的Zynq配置文件

--devicetree_ramdisk.dtb 編譯後的設備樹文件

--ramdisk8M.image.gz 編譯後的文件系統

-- README – 介紹如何運行OOB設計的說明文檔

-- zImage 編譯後的內核

sw目錄:

--硬件配置

--FSBL源代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章