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

正文內(nèi)容

基于數(shù)字圖像處理的車牌定位的研究畢業(yè)論文(編輯修改稿)

2025-07-24 20:48 本頁面
 

【文章內(nèi)容簡介】 + j。 // 判斷是否小于閾值 if ((*lpSrc) bThre) { // 直接賦值為0 *lpSrc = 0。 } else { // 直接賦值為255 *lpSrc = 255。 } } } // 返回 return TRUE。}一般情況下,在一幅有限行和有限列的數(shù)字圖像中取不同灰度值像素的數(shù)目是不同的。直方圖是用于表達圖像灰度分布情況的統(tǒng)計圖表。其橫坐標是灰度值,縱坐標是出現(xiàn)這個灰度值的概率值。盡管灰度直方圖不能表示出具有某些灰度級的像素的具體位置,更不能直接顯示圖像的內(nèi)容,但是具有統(tǒng)計特征的直方圖卻能描述該圖像的灰度分布特征,使人們從中得到諸如總體明亮程度、對比度、灰度分布概貌等信息。如果圖像灰度集中在較窄的區(qū)間,從而引起圖像細節(jié)的模糊,為了使圖像細節(jié)清晰,并使一些目標得到突出,達到增強圖像的目的,可通過改善各部分亮度的比例關(guān)系,即可通過對直方圖進行調(diào)整的方法來實現(xiàn)。這種方法是以概率論為基礎(chǔ)的。一幅對比度小的圖像,其直方圖分布一定集中在某一比較小的范圍內(nèi),經(jīng)過均衡化處理的圖像,其所有灰度級出現(xiàn)的概率相同,此時圖像的熵最大,圖像所包含的信息量最大。直方圖均衡化又稱直方圖平坦化,是將一已知灰度概率密度分布的圖像,經(jīng)過某種變換,變成一幅具有均勻灰度概率密度分布的新圖像,其結(jié)果是擴展了像素取值的動態(tài)范圍,從而達到增強圖像整體對比度的效果。設(shè)原始圖像總的像素數(shù)目為Ⅳ,那么,直方圖均衡化的具體計算步驟如下:設(shè)f(x,y)的灰度范圍為fmin和fmax,將直方圖正規(guī)化為r∈[0,1],即 r=ffminfmaxfmin=fL (2)其中L表示為圖像灰度的范圍。則灰度直方圖表示為 Prrk=nkn (3) 其中n為一幅圖像總像素數(shù)目,nk表示灰度為rk的像素數(shù)目?;叶扔成浜瘮?shù)為 s=T[r],直方圖均衡化時Pss=1。 而由概率論的知識可得:ds=Pr(r)drPs(s)=Pr(r)dr1=Pr(r)dr (4) 從而 s=Tr=0rPr(w)dw (5)在數(shù)字圖像處理中,直方圖均衡化的離散公式為: sk=Trk=j=0kPrrj=j=0knjn (6)圖示33說明了直方圖均衡化前后的對比。圖33 均衡化對比圖直方圖均衡化的程序如下:BOOL WINAPI InteEqualize(LPSTR lpDIBBits, LONG lWidth, LONG lHeight){ // 指向源圖像的指針 unsigned char* lpSrc。 // 臨時變量 LONG lTemp。 // 循環(huán)變量 LONG i。 LONG j。 // 灰度映射表 BYTE bMap[256]。 // 灰度映射表 LONG lCount[256]。 // 圖像每行的字節(jié)數(shù) LONG lLineBytes。 // 計算圖像每行的字節(jié)數(shù) lLineBytes = WIDTHBYTES(lWidth * 8)。 // 重置計數(shù)為0 for (i = 0。 i 256。 i ++) { // 清零 lCount[i] = 0。 } // 計算各個灰度值的計數(shù) for (i = 0。 i lHeight。 i ++) { for (j = 0。 j lWidth。 j ++) { lpSrc = (unsigned char *)lpDIBBits + lLineBytes * i + j。 // 計數(shù)加1 lCount[*(lpSrc)]++。 } } // 計算灰度映射表 for (i = 0。 i 256。 i++) { // 初始為0 lTemp = 0。 for (j = 0。 j = i 。 j++) { lTemp += lCount[j]。 } // 計算對應的新灰度值 bMap[i] = (BYTE) (lTemp * 255 / lHeight / lWidth)。 } // 每行 for(i = 0。 i lHeight。 i++) { // 每列 for(j = 0。 j lWidth。 j++) { // 指向DIB第i行,第j個象素的指針 lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight 1 i) + j。 // 計算新的灰度值 *lpSrc = bMap[*lpSrc]。 } } // 返回 return TRUE。}圖像邊緣信息在圖像分析和人的視覺中都是十分重要的,是圖像識別中提取圖像特征的一個重要依據(jù)。形式上圖像邊緣意味著圖像局部特性的不連續(xù)性。本質(zhì)上邊緣意味著一個區(qū)域的結(jié)束和另外一個區(qū)域的開始。圖像的邊緣可以用兩個特征來描述:方向和幅度。根據(jù)這個特點,經(jīng)典的邊緣特征提取的方法是考慮圖像的每個像素在某個鄰域內(nèi)的變化,然后利用邊緣某個鄰域內(nèi)的一階微分(梯度)或者兩階微分變化規(guī)律,來檢測邊緣。但是,對于數(shù)字圖像由于不是連續(xù)的,所以圖像灰度的顯著變化可以用一階差分代替一階微分的梯度來表示。因此,圖像邊緣的變化情況可以用邊緣的梯度向量的幅度(magnitude)和方向(direction)來表示。圖像中變化劇烈的地方它們的梯度的幅度就大,相反灰度變化比較平緩的地方,梯度的幅度就比較小,而灰度相同的地方,梯度幅度將為零。 已經(jīng)知道梯度方向是函數(shù)最大增長的方向,圖像函數(shù)的變化情況可以用指向圖像函數(shù)最大增長方向的梯度來表示。從而得到結(jié)論:函數(shù)在一點的梯度是個向量,它的方向是函數(shù)在這個點的方向?qū)?shù)取得最大值的方向,它的模就等于方向?qū)?shù)的最大值。另外,由微積分的知識知道:函數(shù)在一點的梯度的方向與等值線在這點的一個法線方法相同,它的指向為從數(shù)值較低的等值線指向數(shù)值較高的等值線,梯度的模就等于函數(shù)在這個法線方向的方向?qū)?shù)。梯度銳化的方法——微分法 我們已經(jīng)知道,對圖像進行邊緣銳化要經(jīng)過微分(求圖像導數(shù))運算,為了要把圖像中向任何方向伸展的邊緣和輪廓線的模糊變清晰,我們還希望對圖像的某種導數(shù)運算是“各向同性”(isotropic)的。 假設(shè) 表示圖像,其中 表示圖像旋轉(zhuǎn)之前的坐標, 是圖像旋轉(zhuǎn)之后的坐標。那么所謂的對圖像的某種導數(shù)運算是“各向同性”是 (?f?x)2+(?f?y)2=(?f?x)2+(?f?y)2 (7) 而其中的梯度算子和拉普拉斯算子都是符合上述條件的,所以它們也是最常見的圖像銳化的運算方法。梯度運算 對于連續(xù)的模擬圖像fx,y,在點(x,y)上的梯度為: Gfx,y=[?y?x?y?y] (8) (?y?x)2+(?f?y)2=mag[G] (9)但是對于數(shù)字圖像來說,需要用差(difference)來代替微分:(注:差分有前向差分和后向差分之分,在這里采用的是后向差分) ?f?x→fx,yf(x1,y) (10) ?f?y→fx,yf(x,y1) (11) Gfx,y=[fx,yfx1,y]2+[fx,yf(x,y1)]212 (12)梯度化的程序代碼如下:BOOL WINAPI GradSharp(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bThre){ // 指向源圖像的指針 unsigned char* lpSrc。 unsigned char* lpSrc1。 unsigned char* lpSrc2。 // 循環(huán)變量 LONG i。 LONG j。 // 圖像每行的字節(jié)數(shù) LONG lLineBytes。 // 中間變量 BYTE bTemp。 // 計算圖像每行的字節(jié)數(shù) lLineBytes = WIDTHBYTES(lWidth * 8)。 // 每行 for(i = 0。 i lHeight。 i++) { // 每列 for(j = 0。 j lWidth。 j++) { // 指向DIB第i行,第j個象素的指針 lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight 1 i) + j。 // 指向DIB第i+1行,第j個象素的指針 lpSrc1 = (unsigned char*)lpDIBBits + lLineBytes * (lHeight 2 i) + j。 // 指向DIB第i行,第j+1個象素的指針 lpSrc2 = (unsigned char*)lpDIBBits + lLineBytes * (lHeight 1 i) + j + 1。 bTemp = abs((*lpSrc)(*lpSrc1)) + abs((*lpSrc)(*lpSrc2))。 // 判斷是否小于閾值 if (bTemp 255) { // 判斷是否大于閾值,對于小于情況,灰度值不變。 if (bTemp = bThre) { // 直接賦值為bTemp *lpSrc = bTemp。 } } else { // 直接賦值為255 *lpSrc = 255。 } } } // 返回 return TRUE。} 圖像的中值濾波線性平滑濾波在消除噪聲的同時會使圖像的細節(jié)模糊。如果既要消除噪聲又要保持圖像的細節(jié),可以使用非線性濾波。中值濾波是一種非線性濾波技術(shù),不屬于卷積算法的區(qū)域處理方法。它將區(qū)域中所有值按大小進行排序,并將排序后位于中間的像素值賦予中心像素。由于區(qū)域中像素值發(fā)生隨機突變的像素,經(jīng)排序后將位于隊首或隊尾,因此取得的中位像素值是正常的像素值。噪聲往往以孤立點的形式隨機出現(xiàn),這些點對應的像素數(shù)很少,而圖像則是由像素數(shù)較多、面積較大的小塊構(gòu)成的,因此中值濾波可以采用一個含有奇數(shù)個像素的滑動窗口在圖像上滑動,將窗口中心點所對應像素值,用窗口內(nèi)所有像素值的中間值代替。例如,在一維的情況下,若中值濾波器的窗口長度為5,窗口中像素的灰度值為80、90、200、110和120,則中值為110。因為按小到大(或大到小)排序后,第三位的值是110,于是原來窗口正中的灰度值200就由110取代。如果200是一個噪聲的尖峰,則將被濾除,達到消除噪聲的目的。這樣中值濾波在一定條件下既可以克服線性濾波器(如領(lǐng)域濾波器)濾波帶來的圖像細節(jié)模糊,又可以有效的濾除脈沖干擾和圖像的掃描噪聲。圖像中值濾波后得到的圖像如圖34。圖34 中值濾波后的圖像圖像中值濾波的程序代碼如下:BOOL WINAPI myMedianFilter(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, int iFilterH, int iFilterW, int iFilterMX, int iFilterMY){ // 指向源圖像的指針 unsigned char* lpSrc。 // 指向要復制區(qū)域的指針 unsigned char* lpDst。 // 指向復制圖像的指針 LPSTR lpNewDIBBits。 HLOCAL hNewDIBBits。 // 指向濾波器數(shù)組的指針 unsigned char * aValue。 HLOCAL hArray。 // 循環(huán)變量 LONG i。 LONG j。 LONG k。 LONG l。 // 圖像每行的字節(jié)數(shù) LONG lLineBytes。 // 計算圖像每行的字節(jié)數(shù) lLineBytes = WIDTHBYTES(lWidth * 8)。 // 暫時分配內(nèi)存,以保存新圖像 hNewDIBBits = LocalAlloc(LHND, lLineBytes * lHeight)。 // 判斷是否內(nèi)存分配失敗 if (hNewDIBBits == NULL) { // 分配內(nèi)存失敗 return FALSE。 } // 鎖定內(nèi)存 lpNewDIBBits = (char * )LocalLock(hNewDIBBits)。 // 初始化圖像為原始圖像 memcpy(lp
點擊復制文檔內(nèi)容
教學教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1