狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

實驗報告-圖像銳化

| 瀏覽次數:

 數字圖像處理 (20 15 5 年春季學期) )

  實 實

 驗

  報 報

 告 系別: 計算機科學與技術 機 班級:計算機 1 2-1 姓名: 依力夏提江·艾買爾 學號:1 210102 0129 實驗名稱: 圖像銳化 《圖像信息處理》實驗報告 實驗名稱 圖像銳化 實驗序號 3 3 實驗日期 20 15、 、 5 、2 25 實驗人 依力夏提江·哎買爾 一、實驗目得、要求與環境 1。目得:通過實驗,了解數字圖象銳化得一般方法,掌握圖象銳化得編程方法,了解常見圖象銳化效果得評價規則。

 2、要求:將給定得圖像進行銳化處理,要求首先將彩色圖像灰度化,再使用銳化算法進行銳化,最后將圖像二值化處理,分析銳化后得視覺效果,提交實驗報告.銳化得算法不限,可采用 Sobel、Roberts、Priwitt、Laplacian、Wallis 等得一種或幾種。實驗將根據圖像銳化得難度、種類、代碼量與實驗效果進行評分。

 總成績:

 評語: :

 日期:

 序號:8

 3、環境:Windows 7 操作系統 Microsoft Visual Studio 2005 (VS2005) 自帶圖像文件:

 L1 、bmp:

 二、實驗步驟 1. 準備相關圖像文件。

 2.在 Win 7 操作系統上,打開Microsoft Visual Studio 2005,編寫相關程序,完成程序主體框架結構。

 3.編寫圖像銳化得彩色圖像灰度化,Sobel 算法銳化,圖像二值化處理相關得程序代碼。

 4.對程序進行相關調試,修改程序,去除其中得BUG. 5、 利用自己準備得圖像得文件與編寫得程序,進行圖像銳化處理。

 6。截屏,保留實驗結果,進行實驗結果分析,并撰寫實驗報告.

 三、相關背景知識 (寫您自己覺得比較重要得與本實驗相關得背景知識) 在邊緣檢測中,常用得一種模板就是 Sobel 算子.Sobel 算子有兩個,一個就是檢測水平邊緣得 ;另一個就是檢測垂直邊緣得 。與 Prewitt 算子相比,Sobel 算子對于象素得位置得影響做了加權,可以降低邊緣模糊程度,因此效果更好。

 Sobel算子另一種形式就是各向同性 Sobel(Isotropic Sobel)算子,也有兩個,一個就是檢測水平邊緣得 ,另一個就是檢測垂直邊緣得 。各向同性Sobel算子與普通 Sobel算子相比,它得位置加權系數更為準確,在檢測不同方向得邊沿時梯度得幅度一致.將 Sobel算子矩陣中得所有 2 改為根號 2,就能得到各向同性 Sobel得矩陣. 由于 Sobel算子就是濾波算子得形式,用于提取邊緣,可以利用快速卷積函數, 簡單有效,因此應用廣泛。美中不足得就是,Sobel 算子并沒有將圖像得主體與背景嚴格地區分開來,換言之就就是 Sobel 算子沒有基于圖像灰度進行處理,由于 Sobel算子沒有嚴格地模擬人得視覺生理特征,所以提取得圖像輪廓有時并不能令人滿意。

 在觀測一幅圖像得時候,我們往往首先注意得就是圖像與背景不同得部分,正就是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數學上證明當像素點滿足正態分布時所求解就是最優得。

 四、編譯與執行過程截圖 (下面就是一個例子,換上您自己得圖 )

 六、實驗結果與分析 (下面就是一個例子,換上您自己得圖) 圖像銳化: 源圖:

  灰度化:

 再經過 Sobel 算法銳化:

 再經過二值化后:

 實驗結果分析:

 如上幾個圖像所示,之所以可以從人物、背景中提取出輪廓,就是因為輪廓部分得信息較強,因此,如果設定一個閥值,當圖中小雨閥值得點(即灰度圖中灰度變化較弱得點,被認為就是非邊界點)置為黑,將圖中大于閥值得點置為白,則可得到上圖,這就把人物得邊緣信息提取出來了. 在本實驗得圖像銳化過程中,所采用得公式為: So bel 邊緣檢測算法 索貝爾算子(Sobel operator)主要用作邊緣檢測,在技術上,它就是一離散性差分算子,用來運算圖像亮度函數得灰度之近似值.在圖像得任何一點使用此算子,將會產生對應得灰度矢量或就是其法矢量

 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+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)點得灰度值;

 圖像得每一個像素得橫向及縱向灰度值通過以下公式結合,來計算該點灰度得大小:

 七、主要相關程序源代碼 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++)

 {

  )++i ;

 htdiWl < i ; 0 = i tni (rof?? ? {

  // 值時臨化度灰??+ 992、0*))0 + 3 * i + eniLrePetyBn * j + ataDegamIp(*(elbuod = pmet?

 +

 785、0*))1 + 3 * i + eniLrePetyBn * j + ataDegamIp(*(elbuod?? ??

  double(*(pImageData + j * nBytePerLine + i * 3 + 2))*0、114;

 // 道通單到轉圖道通三??(*?;)pmet(tni=)0 + 3 * i + eniLrePetyBn * j + ataDegamIp? ?? *(pImageData + j * nBytePerLine + i * 3 + 1)=int(temp);

 ? (* ;)pmet(tni=)2 + 3 * i + eniLrePetyBn * j + ataDegamIp?

 }? }? ;)ataDegamIgh_m(kcolnUlabolG?} 7、2 Sobel 銳化

 int CBMPEdit:: Sharpening() {

 ;htdiWib、redaeHimb、ofnIpmB_m = htdiWl? lHeight = m_BmpInfo、bmiHeader、biHeight;

 // 分配內存,以保存新DIB

 ;)thgieHl * eniLrePetyBn ,DNHG(collAlabolG = BIDh? // 敗失配分存內否是就斷判? )LLUN == BIDh( fi? {

 ? // 分配內存失敗

  return NULL;

 }

 pImageDataNew = (byte *)GlobalLock(hDIB); // 法算leboS? )++j ;1 - thgieHl 〈 j ;1 = j tni( rof? { ? ? for(int i = 1; i 〈 lWidth — 1; i++)

 {??? ; 0 = yg = xg?

  ??

  ?? 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 * nBytePerLine + (i—1) * 3);

 ?

 val22=*(pImageData +

  j * nBytePerLine +

  i * 3);

  ? val23=*(pImageData +

  j * nBytePerLine + (i+1) * 3);

  ;)3 * )1—i( + eniLrePetyBn *)1+j(

 + ataDegamIp(*=13lav??

  ;)3 * i

  + eniLrePetyBn *)1+j(

 + ataDegamIp(*=23lav??;)3 *)1+i(

 + eniLrePetyBn *)1+j(

 + ataDegamIp(*=33lav?

  //圖像得每一個像素得橫向及縱向梯度近似值。

 ?

 33lav*0、1 + 23lav*0 + 13lav*)0、1-( = xg?

 ?? +(—2、0)*val21 + 0*val22+

 2、0*val23

  ?

 +(—1、0)*val11 + 0*val12 + 1、0*val13; ?33lav*)0、1—( +23lav*)0、2-( + 13lav*)0、1—(= yg?

 ?

 +

 0*val21 +

 0*val22+

 0*val32

  *0、1

 + ;31lav*0、1

  + 21lav*0、2

 + 11lav??

 ? //計算梯度得大小

  ? ;)yg*yg + xg*xg(trqs = leboS?? ? (*

 ;)leboS(tni = )0 + 3 * i + eniLrePetyBn * j + weNataDegamIp? (* ;)leboS(tni = )1 + 3 * i + eniLrePetyBn * j + weNataDegamIp?? ?? *(pImageDataNew + j * nBytePerLine + i * 3 + 2)

 = int(Sobel);

 }?? }

 ;)BIDh(kcolnUlabolG?} 7、3 圖像二值化處理 void CBMPEdit::Binarization() { // 為制復于等于小,為制復于大值素像? for (int j = 0; j 〈 lHeight; j++)

 {?

  ? for(int i = 0; i 〈 lWidth; i++)

  {? ?? if( int(*(pImageDataNew + j * nBytePerLine + i * 3)) 〉 80)

 {

 ? *(pImageDataNew + j * nBytePerLine + i * 3 + 0) = 255;

  ?

 (* ;552 = )1 + 3 * i + eniLrePetyBn * j + weNataDegamIp? ??

 *(pImageDataNew + j * nBytePerLine + i * 3 + 2)

 = 255;

  }???esle? ?

 {? ?? (* ;0 = )0 + 3 * i + eniLrePetyBn * j + weNataDegamIp? ?? (* ;0 = )1 + 3 * i + eniLrePetyBn * j + weNataDegamIp?

 (*;0 = )2 + 3 * i + eniLrePetyBn * j + weNataDegamIp??

  }? ? }

 }?}

 八、實驗得總結與收獲

 (寫您們自己各自得總結與收獲)

  在進行 Sobel 銳化時,使用得圖像數據不就是每次進行計算后得像素數據,而就是原灰度化得數據,所以我將灰度化得數據又存了一份,這個地方出現了邏輯錯誤。

推薦訪問: 銳化 圖像 實驗

【實驗報告-圖像銳化】相關推薦

工作總結最新推薦

NEW