freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc與opencv的路標(biāo)識別系統(tǒng)開發(fā)設(shè)計(jì)(編輯修改稿)

2024-12-16 03:23 本頁面
 

【文章內(nèi)容簡介】 圖 路 標(biāo)識別流程圖 本文的研究方面 本文研究的是自然場景下交通標(biāo)志牌的檢測與識別,它是通過安裝在車輛上的攝像機(jī)來獲取室外的交通標(biāo)志,將所獲取的交通標(biāo)志圖像送入計(jì)算機(jī),通過計(jì)算機(jī)來完成交通標(biāo)志的快速檢測與識別。所有的交通標(biāo)志牌都處于自然場景下,所受到的干擾較多,主要有以下幾個方面: (1)光照影響。由于晴天、雨天、霧天,還有雪天等等不同的自然環(huán)境下,圖像所獲得的光照條件是不同的,因此拍攝獲得的交通標(biāo)志牌的圖像質(zhì)量參差不齊; (2)噪聲影響。在圖像獲取過程中噪聲在所難免,克服噪聲是交通標(biāo)志牌檢測與識別的重要部分; (3)交通標(biāo) 志牌形狀,大小的不確定性。由于標(biāo)志牌是通過安裝在汽車上的攝像機(jī)拍攝獲取的,所獲得的標(biāo)志牌的形狀、大小在不同條件下會有明顯不同,這給標(biāo)志牌的檢測與識別增加了難度; (4)運(yùn)動模糊。交通標(biāo)志牌在獲取過程中,難免會受到汽車的抖動,以及相機(jī)與景物之間相對運(yùn)動的影響,產(chǎn)生運(yùn)動模糊,從而影響圖片質(zhì)量; 獲取圖像 圖像預(yù)處理 放大縮小 濾波 邊緣檢測 圖片分割 獲得路標(biāo) 二值化 形態(tài)學(xué)處理 獲得樣例特征值 識別路標(biāo) 輸出結(jié)果 武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告 5 (5)標(biāo)志牌的遮擋、破損。由于交通標(biāo)志長期暴露在自然條件下,因此所拍攝到的圖像,難免存在損毀、缺省現(xiàn)象,而且交通標(biāo)志牌都是安放在道路兩側(cè),近年來受到綠化加強(qiáng)影響,交通標(biāo)志牌常常受到樹木以及其他障礙物的遮擋。在以上復(fù)雜的自然狀況下,如 何快速檢測與識別交通標(biāo)志牌,是本課題研究的重點(diǎn)與難點(diǎn)。 為了克服以上不利條件影響,本文主要從以下幾個方面進(jìn)行研究: (1)為了克服噪聲和運(yùn)動模糊對圖像檢測的影響,本文在實(shí)驗(yàn)中分析了幾種濾波算法后,采用中值濾波方法來消除隨機(jī)噪聲; (2)為了克服光照對交通標(biāo)志分割的影響,同時提高算法的實(shí)時性,本文在 RGB顏色空間下,采用計(jì)算三基色之間的相對值來克服光照影響,實(shí)現(xiàn)標(biāo)志牌的分割,然后在得到的二值圖像中結(jié)合交通標(biāo)志的形狀特征,實(shí)現(xiàn)交通標(biāo)志的定位。 (3)為了克服交通標(biāo)志牌的形狀變化影響識別效果,本文采用 旋轉(zhuǎn)方式對 檢測到的交通標(biāo)志牌提 取特征向量,組成特征庫,然后采用圖像匹配技術(shù)和 K最近鄰算法 實(shí)現(xiàn)交通標(biāo)志分類識別。 武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告 6 第三章 詳細(xì)設(shè)計(jì) 圖像的打開顯示和保存 圖像的打開比較簡單,主要用到了 OnOpenDocument()函數(shù),通過該函數(shù)傳入的lpszPathName 參數(shù),就可以打開選中的圖片。 m_pImage = cvLoadImage(lpszPathName, 1)。上面這句代碼就是調(diào)用 opencv 里的 LoadImage 函數(shù),將選中的圖片載入到 IplImage 型變量 m_pImage 中,后面就可以調(diào)用 opencv 的各種函數(shù)對 m_pImage 進(jìn)行操作了。 圖像的顯示代碼主要在視圖類的 OnDraw 函數(shù)中,這樣每次窗口的重繪都會調(diào)用該函數(shù)從而將經(jīng)過處理的圖像實(shí)時地顯示出來。 圖像的保存也比較簡單,只需要在 MFCView 類中定義圖片格式,調(diào)用保存對話框,選擇路徑后將圖片數(shù)據(jù)傳入 Doc類的 DocSave(strFileName,pDoc())函數(shù)中,在此函數(shù)中調(diào)用 opencv 里的函數(shù) CvSaveImage()即可。下面就是保存圖像的核心代碼: cvSaveImage(lpszPathName, m_pImage)。該函數(shù)就可以將圖像 m_pImage 保存在指定的路徑 lpszPathName 中。其中 lpszPathName 是通過打開文件時自動獲得的該文件的所在的路徑。所使用的函數(shù)如表 31: 表 31 圖像顯示保存主要函數(shù)函數(shù)說明 BOOL CDDDoc::OnOpenDocument(LPCTSTR lpszPathName) 打開圖片函數(shù)。 lpszPathName 表示選擇的路徑。 void CDDView::OnFileSaveAs() View 響應(yīng)消息,函數(shù)圖像文件保存。 BOOL CDDDoc::Save(LPCTSTR csFileName,IplImage* pImg) csFileName 為保存文件的名字 pImg 為圖像 數(shù) 據(jù) 地 址 , 調(diào) 用cvSaveImage(csFileName,pImg)保存。 圖像變換 圖像的幾何變化研究圖像的放大、縮小以及旋轉(zhuǎn)的功能。 縮放是使圖像按比例因子放大或縮小的變換。變比計(jì)算公式為: X1=X*Sx; Y1=Y*Sy。按公式變比時,不僅對象的大小變化,且對象離原點(diǎn)的距離也發(fā)生了變化,如果只希望變換對 象的大小,而不希望變比對角離原點(diǎn)的距離,則可采用固定點(diǎn)變比。圖像旋轉(zhuǎn)是以某個參考點(diǎn)為圓心,將對象上的個點(diǎn)( X,Y)圍繞圓心轉(zhuǎn)動一個逆時針角度,變?yōu)樾碌淖鴺?biāo)( X1,Y1)的變換。 要用到幾個函數(shù): cvResize、 cvCopy。函數(shù)列表 32: 表 32 圖像幾何變換主要函數(shù)說明 void CDDView::Tuxiangsuofang() 功能函數(shù),由響應(yīng)函數(shù)調(diào)用,接受對話框數(shù)值,實(shí)現(xiàn)圖像的放大縮小功能。 cvCreateImage( CvSize size, int depth, int channels )。 創(chuàng)建頭并分配數(shù)據(jù) , size 圖像寬高, depth圖像元素的位深度, channels 每元素通道數(shù)。 cvResize( const CvArr *src, CvArr* dst, int interpolation CV_DEFAULT( CV_INTER_LINEAR )) 調(diào)整圖像 src,使它精確匹配目標(biāo) dst。src 源圖像 dst, 目標(biāo)圖像 ,interpolation 修改 、 插補(bǔ)的方法 。 cvCopy( const CvArr* src, CvArr* dst, 拷貝一個數(shù)組給另一個數(shù)組 。 src輸入武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告 7 const CvArr* mask CV_DEFAULT(NULL) ) 數(shù)組 , dst 輸出數(shù)組 , mask 操作掩碼是 8 比特單通道的數(shù)組 , 它指定了輸出數(shù)組中被改變的元素。 函數(shù) cvResize 中 interpolation 為插值方法,包括最近鄰插值、雙線性插值、立方插值等,函數(shù) cvResize 將圖像 src 改變尺寸得到與 dst 同樣大小,原理為圖像放大時有的地方像素不變,有的地方缺少顏色值,于是函數(shù)在缺少的地方依照差值方法自動補(bǔ)上顏色信息,縮小時刪除一定像 素值,使得圖像在縮小或者放大后盡量和源圖像保持顏色信息一致。函數(shù) cvCopy 的語法為: void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask=NULL),其中 src 為輸入數(shù)組, dst 為輸出數(shù)組, mask 為在、操作掩碼是 8 比特單通道的數(shù)組,它指定了輸出數(shù)組中被改變的元素,函數(shù) cvCopy 從輸入數(shù)組中復(fù)制選定的成分到輸出數(shù)組,如果輸入數(shù)組中的一個是 IplImage 類型的話,其 ROI 和 COI 將被使用,輸入輸出數(shù)組必須是同樣的類型、維數(shù)和大小,該函數(shù)也可以 用來復(fù)制散列數(shù)組。 但需要注意的是,復(fù)制的兩個數(shù)組其維數(shù)必須相同,不然會出現(xiàn)未知錯誤,比如彩色圖像與灰度圖像相互復(fù)制時,其通道不相同,要先轉(zhuǎn)化才能使用。創(chuàng)建一個新圖可以使用 cvCreateImage()函數(shù),其作用 創(chuàng)建頭并分配數(shù)據(jù) , nchannels 為通道數(shù),彩色圖像為 3,灰度與二值圖像通道為一。 圖像的放大、縮小、旋轉(zhuǎn)效果如下: ( a)原圖 武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告 8 (b)圖像順時針旋轉(zhuǎn) 90 度 (c)寬度增大一倍,長度縮小一倍 圖 圖像的縮小、放大、旋轉(zhuǎn) 圖形信息操作 直方圖是圖 像處理中一種十分重要的圖像分析工具,它描述了一幅圖像的灰度級內(nèi)容,任何一幅圖像的直方圖都包含了豐富的信息,它主要用在圖像分割、圖像灰度變換等處理過程中。從數(shù)學(xué)上來說圖像直方圖是圖像各灰度值統(tǒng)計(jì)特性與圖像灰度值的函數(shù),它統(tǒng)計(jì)一幅圖像中各個灰度級出現(xiàn)的次數(shù)或頻率,表達(dá)一幅圖像灰度級分布情況的統(tǒng)計(jì)表。從圖形上來說,它是一個二維圖,橫坐標(biāo)表示圖像中各個像素點(diǎn)的灰度級,縱坐標(biāo)視圖像的類型而定,對于連續(xù)圖像信號,它是灰度值出現(xiàn)的概率密度,對于數(shù)字圖像信號,它是某以灰度值的像素個數(shù)。 圖像的直方圖只展示具有某一灰度的像素 數(shù),并不提示哪些像素固定在圖像的某一區(qū)域上。因此引入直方圖均衡化的概念。我們可以通過對直方圖進(jìn)行調(diào)整,使得圖像數(shù)據(jù)信息量增大,這樣也使得畫面更清晰。直方圖均衡化的原理是:將原圖像通過某種變換,得到一幅灰度直方圖為均勻分布的新圖像的方法。設(shè)圖像均衡化處理后,圖像的直方圖是平直的,即各灰度級具有相同的出現(xiàn)頻數(shù),那么由于灰度級具有均有的概率分布,圖像看起來就更清晰了。 在該模塊中需要實(shí)現(xiàn)圖像灰度化,二值處理,直方圖統(tǒng)計(jì),直方圖均衡化。用到的函數(shù)如下表 33。 表 33 圖形信息處理主要函數(shù)說明 void CDDView::Huiduhua() 功能函數(shù),由 View 響應(yīng)函數(shù)調(diào)用,實(shí)現(xiàn)彩色圖像灰度化。 cvCvtColor( const CvArr* src, CvArr* dst, int code ) 顏色空間轉(zhuǎn)換函數(shù) 。 Src 輸入數(shù)據(jù),dst 輸出數(shù)據(jù), code 為色彩轉(zhuǎn)化模式。 cvCloneImage( const IplImage* image ) 把 src 圖像復(fù)制給 dst cvThreshold( const CvArr* src, CvArr* dst, double threshold, double ax_value, int threshold_type )。 對單通道數(shù)組應(yīng)用固定閾值操作 ,src:原始數(shù)組 , dst:輸出數(shù)組 ,threshold:閾值 , max_value:最大值 vCreateHist( int dims, int* sizes, int type, float** ranges CV_DEFAULT(NULL), int uniform CV_DEFAULT(1)) 創(chuàng)建直方圖 , dims:直方 圖維數(shù),sizes:直方圖維數(shù)尺寸數(shù)組, type:表示格式, uniform:歸一化標(biāo)示。 void cvCalcHist( IplImage** image, CvHistogram* hist,int accumulate CV_DEFAULT(0), const CvArr* mask CV_DEFAULT(NULL) ) 計(jì)算圖像 image(s) 的直方圖 。Image:輸入圖像, hist:直方圖指針, accumulate:累計(jì)標(biāo)識, mask:操作。 cvGetMinMaxHistValue( const CvHistogram* hist, float* min_value, float* max_value, int* min_idx CV_DEFAULT(NULL), int* max_idx CV_DEFAULT(NULL))。 發(fā)現(xiàn)最大最小直方塊, hist:直方圖,min_value:直方圖最小的指針,max_value:最大值指針, min_idx:數(shù)組中最小坐標(biāo)指針, max_idx:最大坐標(biāo)指針。 武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 綜合設(shè)計(jì)報(bào)告 9 cvRectangle( CvArr* img, CvPoint pt1, CvPointpt2, CvScalar color, int thickness CV_DEFAULT(1), int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0))。 通過對角線上的兩個頂點(diǎn)繪制簡單、指定粗細(xì)或者帶填充的矩形 ,img: 圖像 pt1: 矩形的一個頂點(diǎn)。 pt2: 矩形對角線上的另一個頂點(diǎn) cvShowImage( const char* name, const CvArr* image )。 在指定窗口中顯示圖像 將彩色圖像轉(zhuǎn)化為灰度圖像的函 數(shù)為: cvCvtColor(),運(yùn)用該函數(shù)對圖像進(jìn)行灰度化處理。 Code 可以取兩個值,參數(shù) CV_BGR2GRAY 是將彩色圖像轉(zhuǎn)化為灰度圖像,參數(shù) CV_GRAY2RGB 是灰度圖像轉(zhuǎn)化為彩色圖像。 其中當(dāng) code 選用 CV_BGR2GRAY時, dst 需要是單通道圖片。當(dāng) code 選用 CV_BGR2HSV 時,對于 8 位圖,需要將rgb 值歸一化到 01 之間。這樣得到 HSV 圖中的 H 范圍才是 0360, S 和 V 的范圍
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1