一、實驗目的
學習影象縮放的原理,掌握OV2640 攝像頭和VPIF匯流排的工作原理,實現OV2640 攝像頭採集影象並進行實時影象縮小顯示在 LCD 上。
二、實驗原理
OV2640攝像頭
OV2640 是世界上第一個 1/4 英寸 2 百萬畫素影片感測器,同時是 OmniVision 最新的
2.2 微米 OmniPixel2™架構的影片感測器,可支援 200 萬畫素,解析度可高達 1600x1200,
幀率可達 30 幀/秒,最高幀率可達 60 幀/秒。
OV2640攝像頭採集影象時,會先經過感光元件,取樣的訊號經過運放,再進行AD轉換,AD量化之後得到數字化的影片訊號會進行控制調整,最終透過影片輸出介面輸出。
除此之外還有其他的一些訊號介面,比如時鐘輸入,畫素時鐘,行同步訊號,幀同步訊號,時序產生和邏輯控制單元等等。
OV2640時序
影象資料在HREF為高的時候輸出,當HREF變高後,每一個PCLK時鐘,輸出一個位元組資料。比如我們採用UXGA時序,RGB565格式輸出,每2個位元組組成一個畫素的顏色(低位元組在前,高位元組在後),這樣每行輸出總共有16002個PCLK週期,輸出16002個位元組。
當HREF輸出高電平時開始讀取一行畫素點,當低電平時不操作,重複操作即可讀取一幀影象。OV2640支援:RGB565或JPEG輸出。RGB565輸出時,時序如圖所示。JPEG輸出時,PCLK大大減少,且HREF不連續,資料流以0XFF,0XD8開頭,以0XFF,0XD9結束。
VPIF介面
Video Port Interface (VPIF), 是一種影片介面。VPIF的通道0和通道1只能用於接收資料,通道2和通道3只能用於傳送資料
VPIF 傳輸協議
VPIF 介面主要支援三種協議的傳輸:BT-656、BT-1120和Raw Capture mode
VPIF 埠接收通道支援三種協議:
BT-656
BT-1120
Raw Capture mode
VPIF 埠傳送通道支援兩種協議:
BT-656
BT-1120
影象縮放
在計算機影象處理和計算機圖形學中,影象縮放是指對數字影象的大小進行調整的過程。影象縮放是一種非平凡的過程,需要在處理效率以及結果的平滑度和清晰度上做一個權衡。當一個影象的大小增加之後,組成影象的畫素的可見度將會變得更高,從而使得影象表現得“軟”。相反地,縮小一個影象將會增強它的平滑度和清晰度。
影象縮放包含影象縮小和影象放大。常用的影象縮放演算法有:最鄰近插值、雙線性內插值和雙三次插值法。
雙線性插值
在雙線性內插值法中,對於一個目的畫素,設定座標透過反向變換得到的浮點座標為(i+u,j+v),其中i、j均為非負整數,u、v為[0,1]區間的浮點數,則這個畫素得值 f(i+u,j+v) 可由原影象中座標為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應的周圍四個畫素的值決定,即:
f(i+u,j+v)= (1-u)(1-v)f(i,j)+ (1-u)vf(i,j+1)+ u(1-v)f(i+1,j)+ uvf(i+1,j+1)其中f(i,j)表示源影象(i,j)處的的畫素值,以此類推。
優點:雙線性內插值法計算量大,但縮放後圖像質量高,不會出現畫素值不連續的的情況。
缺點:雙線性插值具有低通濾波器的性質,使高頻分量受損,所以可能會使影象輪廓在一定程度上變得模糊。
OpenCV
OpenCV 是一個基於 C/C++語言的開源影象處理函式庫。
l 程式碼都經過最佳化,可用於實時處理影象
l 具有良好的可移植性
l 可以進行影象/影片載入、儲存和採集的常規操作
l 具有低階和高階的應用程式介面(API)
l 提供了面向 Intel IPP 高效多媒體函式庫的介面,可針對使用的 Intel CPU 最佳化程式碼,提高程式效能
OpenCV模組
OpenCV模組功能包括影象資料操作、影象/影片的輸入輸出、基本影象處理(去噪、邊緣檢測、角點檢測、取樣與插值、色彩變換、形態學處理、直方圖、影象金字塔結構)等 。
l cv – 核心函式庫
l cvaux – 輔助函式庫
l cxcore – 資料結構與線性代數庫
l highgui – GUI 函式庫
l ml – 機器學習函式庫
引數說明
src:輸入影象.
dst:輸出影象.
interpolation:差值方法:
• CV_INTER_NN:最近鄰插值
• CV_INTER_LINEAR :雙線性插值 (預設的方法)
• CV_INTER_AREA : 使用畫素關係重取樣。當影象縮小時候,該方法可以避免波紋出現。當影象放大時,類似於 CV_INTER_NN 方法
• CV_INTER_CUBIC :立方插值(雙三次插值)
函式 cvResize 將影象 src 改變尺寸得到與 dst 同樣大小。若設定ROI,函式將按常規支援 ROI。
程式流程
程式流程設計中首先要使能快取,接著進行DSP中斷初始化和LCD的初始化,然後初始化配置I2C和OV2640攝像頭,初始化VPIF匯流排。最後攝像頭採集接收資料,灰度轉換後進行影象縮小處理,並將資料顯示在LCD上。
三、操作現象
實驗裝置
本實驗使用的硬體介面為LCD和VPIF 介面,所需硬體為實驗板、模擬器、TL2640I 攝像頭模組、LCD和電源。
硬體連線
(1)將 TL2640I 攝像頭模組連線到實驗板的 VPIF 介面。
(2)連線模擬器和電腦的USB介面,
(3)將撥碼開關撥到DEBUG模式01111,連線實驗箱電源,撥動電源開關上電。
軟體操作
匯入工程,選擇Demo資料夾下的對應工程
編譯工程
將CCS連線實驗箱並載入程式
點選執行程式
在LCD螢幕上實時顯示採集並做了縮小處理的影象
實驗結束後,先點選黃色按鈕暫停程式執行,再點選紅色按鈕退出CCS與實驗箱的連線,最後實驗箱斷電即可。