實驗報告-圖像銳化_第1頁
實驗報告-圖像銳化_第2頁
實驗報告-圖像銳化_第3頁
實驗報告-圖像銳化_第4頁
實驗報告-圖像銳化_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、.數(shù)字圖像處理(2015年春季學期)序號:8 實 驗 報 告系別:計算機科學與技術班級:計算機12-1姓名:依力夏提江艾買爾學號:12101020129實驗名稱:圖像銳化總成績:評語: 日期:圖像信息處理實驗報告實驗名稱圖像銳化實驗序號3實驗日期2015.5.25實驗人依力夏提江哎買爾一、實驗目的、要求與環(huán)境1目的:通過實驗,了解數(shù)字圖象銳化的一般方法,掌握圖象銳化的編程方法,了解常見圖象銳化效果的評價規(guī)則。2.要求:將給定的圖像進行銳化處理,要求首先將彩色圖像灰度化,再使用銳化算法進行銳化,最后將圖像二值化處理,分析銳化后的視覺效果,提交實驗報告。銳化的算法不限,可采用Sobel、Rober

2、ts、Priwitt、Laplacian、Wallis等的一種或幾種。實驗將根據(jù)圖像銳化的難度、種類、代碼量與實驗效果進行評分。3.環(huán)境:Windows 7操作系統(tǒng)Microsoft Visual Studio 2005 (VS2005)自帶圖像文件:L1.bmp:二、實驗步驟1. 準備相關圖像文件。2在Win 7操作系統(tǒng)上,打開Microsoft Visual Studio 2005,編寫相關程序,完成程序主體框架結構。3編寫圖像銳化的彩色圖像灰度化,Sobel算法銳化,圖像二值化處理相關的程序代碼。4對程序進行相關調試,修改程序,去除其中的BUG。5. 利用自己準備的圖像的文件和編寫的程序

3、,進行圖像銳化處理。6截屏,保留實驗結果,進行實驗結果分析,并撰寫實驗報告。三、相關背景知識(寫你自己覺得比較重要的與本實驗相關的背景知識)在邊緣檢測中,常用的一種模板是Sobel 算子。Sobel 算子有兩個,一個是檢測水平邊緣的 ;另一個是檢測垂直邊緣的 。與Prewitt算子相比,Sobel算子對于象素的位置的影響做了加權,可以降低邊緣模糊程度,因此效果更好。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個,一個是檢測水平邊緣的 ,另一個是檢測垂直邊緣的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權系數(shù)更為準確,在檢測不同方向

4、的邊沿時梯度的幅度一致。將Sobel算子矩陣中的所有2改為根號2,就能得到各向同性Sobel的矩陣。由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡單有效,因此應用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進行處理,由于Sobel算子沒有嚴格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。 在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學上證明當像素點滿足正態(tài)分布時所求解是最優(yōu)的

5、。四、編譯與執(zhí)行過程截圖(下面是一個例子,換上你自己的圖)六、實驗結果與分析(下面是一個例子,換上你自己的圖)圖像銳化:源圖: 灰度化:再經過Sobel算法銳化:再經過二值化后: 實驗結果分析:如上幾個圖像所示,之所以可以從人物、背景中提取出輪廓,是因為輪廓部分的信息較強,因此,如果設定一個閥值,當圖中小雨閥值的點(即灰度圖中灰度變化較弱的點,被認為是非邊界點)置為黑,將圖中大于閥值的點置為白,則可得到上圖,這就把人物的邊緣信息提取出來了。在本實驗的圖像銳化過程中,所采用的公式為:Sobel邊緣檢測算法索貝爾算子(Sobel operator)主要用作邊緣檢測,在技術上,它是一離散性差分算子,

6、用來運算圖像亮度函數(shù)的灰度之近似值。在圖像的任何一點使用此算子,將會產生對應的灰度矢量或是其法矢量Sobel卷積因子為:該算子包含兩組3x3的矩陣,分別為橫向及縱向,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。如果以A代表原始圖像,Gx及Gy分別代表經橫向及縱向邊緣檢測的圖像灰度值,其公式如下:具體計算如下:Gx = (-1)*f(x-1, y-1) + 0*f(x,y-1) + 1*f(x+1,y-1) +(-2)*f(x-1,y) + 0*f(x,y)+2*f(x+1,y) +(-1)*f(x-1,y+1) + 0*f(x,y+1) + 1*f(x+1,y+1)= f(x

7、+1,y-1)+2*f(x+1,y)+f(x+1,y+1)-f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1)Gy =1* f(x-1, y-1) + 2*f(x,y-1)+ 1*f(x+1,y-1) +0*f(x-1,y) 0*f(x,y) + 0*f(x+1,y) +(-1)*f(x-1,y+1) + (-2)*f(x,y+1) + (-1)*f(x+1, y+1)= f(x-1,y-1) + 2f(x,y-1) + f(x+1,y-1)-f(x-1, y+1) + 2*f(x,y+1)+f(x+1,y+1)其中f(a,b),表示圖像(a,b)點的灰度值;圖像的每一個像素的橫

8、向及縱向灰度值通過以下公式結合,來計算該點灰度的大?。浩?、主要相關程序源代碼7.1 彩色圖像灰度化void CBMPEdit:Gray()pImageData = (byte *)GlobalLock(m_hgImageData);lWidth = m_BmpInfo.bmiHeader.biWidth;lHeight = m_BmpInfo.bmiHeader.biHeight;for ( int j = 0 ; j lHeight ; j+)for( int i = 0 ; i lWidth ; i+)/灰度化臨時值temp = double(*(pImageData + j * nByt

9、ePerLine + i * 3 + 0)*0.299 + double(*(pImageData + j * nBytePerLine + i * 3 + 1)*0.587 + double(*(pImageData + j * nBytePerLine + i * 3 + 2)*0.114;/三通道圖轉到單通道*(pImageData + j * nBytePerLine + i * 3 + 0)=int(temp);*(pImageData + j * nBytePerLine + i * 3 + 1)=int(temp);*(pImageData + j * nBytePerLine

10、+ i * 3 + 2)=int(temp);GlobalUnlock(m_hgImageData);7.2 Sobel銳化int CBMPEdit: Sharpening()lWidth = m_BmpInfo.bmiHeader.biWidth;lHeight = m_BmpInfo.bmiHeader.biHeight;/ 分配內存,以保存新DIBhDIB = GlobalAlloc(GHND, nBytePerLine * lHeight);/ 判斷是否內存分配失敗if (hDIB = NULL)/ 分配內存失敗return NULL;pImageDataNew = (byte *)G

11、lobalLock(hDIB);/Sobel算法for (int j = 1; j lHeight - 1; j+)for(int i = 1; i lWidth - 1; i+)gx = gy = 0 ; val11=*(pImageData + (j-1) * nBytePerLine + (i-1) * 3);val12=*(pImageData + (j-1) * nBytePerLine + i * 3);val13=*(pImageData + (j-1) * nBytePerLine + (i+1) * 3);val21=*(pImageData + j * nBytePerLi

12、ne + (i-1) * 3);val22=*(pImageData + j * nBytePerLine + i * 3);val23=*(pImageData + j * nBytePerLine + (i+1) * 3);val31=*(pImageData + (j+1)* nBytePerLine + (i-1) * 3);val32=*(pImageData + (j+1)* nBytePerLine + i * 3);val33=*(pImageData + (j+1)* nBytePerLine + (i+1)* 3);/圖像的每一個像素的橫向及縱向梯度近似值。gx = (-1

13、.0)*val31 + 0*val32 + 1.0*val33+(-2.0)*val21 + 0*val22+ 2.0*val23+(-1.0)*val11 + 0*val12 + 1.0*val13;gy =(-1.0)*val31 + (-2.0)*val32+ (-1.0)*val33+ 0*val21 + 0*val22+ 0*val32+ 1.0*val11 + 2.0*val12 + 1.0*val13;/計算梯度的大小 Sobel = sqrt(gx*gx + gy*gy);*(pImageDataNew + j * nBytePerLine + i * 3 + 0) = int

14、(Sobel); *(pImageDataNew + j * nBytePerLine + i * 3 + 1) = int(Sobel);*(pImageDataNew + j * nBytePerLine + i * 3 + 2) = int(Sobel);GlobalUnlock(hDIB);7.3 圖像二值化處理void CBMPEdit:Binarization()/像素值大于復制為,小于等于復制為for (int j = 0; j lHeight; j+)for(int i = 0; i 80)*(pImageDataNew + j * nBytePerLine + i * 3 + 0) = 255; *(pImageDataNew + j * nBytePerLine + i * 3 + 1) = 255;*(pImageDataNew + j * nBytePerLine + i * 3 + 2) = 255;else*(pImageDataNew + j * nByteP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論