數(shù)字圖像處理課程設(shè)計(jì)--最大值、最小值濾波圖像增強(qiáng)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  數(shù)字圖像處理課程設(shè)計(jì)</p><p>  ——最大值、最小值濾波圖像增強(qiáng)</p><p>  實(shí)驗(yàn)?zāi)康模菏煜ち私狻W(xué)習(xí)C、C++語言;</p><p>  學(xué)習(xí)VC++在圖像處理中的應(yīng)用;</p><p>  深入了解圖像的增強(qiáng)處理;</p><p>  深入了解用最大值濾波、最小值濾波增強(qiáng)處理圖

2、像的基本知識(shí);</p><p>  掌握?qǐng)D像處理的基本方法掌握最大值、最小值濾波的程序編寫及其它圖像增強(qiáng)處理的程序編寫的了解。</p><p><b>  實(shí)驗(yàn)儀器:</b></p><p>  TestVC軟件,計(jì)算機(jī),photoshop軟件。</p><p><b>  實(shí)驗(yàn)原理:</b><

3、;/p><p>  圖像增強(qiáng)就是采用某些技術(shù)把質(zhì)量低的圖像進(jìn)行計(jì)算機(jī)處理, 有選擇地加強(qiáng)或抑制圖像中的某些信息, 改善圖像質(zhì)量, 提高人或機(jī)器對(duì)圖像的分析與判讀能力。</p><p>  圖像的增強(qiáng)處理方法一共有兩種,分別是空間域方法和頻域方法??臻g域方法主要是運(yùn)用空間濾波對(duì)圖像增強(qiáng)進(jìn)行處理,所謂濾波,就是過濾掉圖像中的一些“成分”,對(duì)數(shù)字圖像的直接濾波就是空間濾波(相對(duì)于頻率域?yàn)V波)??臻g濾

4、波主要包括平均濾波、中值濾波、最大值濾波、最小值濾波等??臻g濾波是通過空間濾波器實(shí)現(xiàn)??臻g濾波器就是在一個(gè)鄰域(如包圍該像素的一個(gè)小矩形區(qū)域)里,對(duì)該鄰域包圍的像素的進(jìn)行操作??臻g濾波器包括線性濾波器如:線性操作,如加、減、乘運(yùn)算;非線性濾波器如:非線性操作??臻g濾波器又叫模板,類似于矩陣,大小有3*3模板、5*5模板、9*9模板等。</p><p><b>  如:9*9模板:</b>&l

5、t;/p><p>  空間濾波對(duì)圖像的增強(qiáng)處理主要是通過模板運(yùn)算實(shí)現(xiàn)的,按照指定的模板進(jìn)行運(yùn)算。</p><p>  如右圖,是對(duì)模板運(yùn)算的</p><p><b>  的圖示解釋。</b></p><p>  模版運(yùn)算實(shí)現(xiàn)的主要步驟:</p><p>  1、將模板在圖中遍歷,并將模板中心與圖中某個(gè)

6、像素位置重合;</p><p>  2、將模板上的各個(gè)系數(shù)與模板下的各對(duì)應(yīng)像素的灰度值相乘;</p><p>  3、將所有乘積相加;</p><p>  4、將上述運(yùn)算結(jié)果賦給模板中心位置的像素。</p><p>  最大值濾波、最小值濾波的原理:設(shè)輸出的圖像為g(x,y),</p><p><b>  最

7、大值濾波</b></p><p><b>  最小值濾波</b></p><p><b>  實(shí)驗(yàn)內(nèi)容:</b></p><p>  1,在百度圖庫中尋找一張圖片:</p><p>  2,在Photoshop中,將圖片改為寬300像素,高300像素的圖片,模式保存為RGB,8位/通道,

8、格式為bmp,保存在D盤中,命名為:myimge;</p><p>  3,打開TestVC.dsw工程文件,再打開mytest.cpp文件,在指定位置輸入程序</p><p>  4,編譯,調(diào)試,運(yùn)行。</p><p><b>  實(shí)驗(yàn)結(jié)果:</b></p><p>  利用for循環(huán)編寫代碼;</p>

9、<p>  1.1最大值濾波for循環(huán)主要代碼:</p><p>  void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300])</p><p><b>  {</b></p><p>  int i,j,max;</p><p>

10、;  for(i=1;i<300;i++)</p><p><b>  {</b></p><p>  for(j=1;j<300;j++)</p><p><b>  {</b></p><p>  max=inimage[1000][1000];</p><p&g

11、t;  if(inimage[i][j]>max)</p><p><b>  {</b></p><p>  max=inimage[i][j];</p><p><b>  }</b></p><p>  outimage[i][j]=max;</p><p>&l

12、t;b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  1.2代碼截圖:</b></p><p>  1.3 輸入圖像(左),輸出圖像(右);</p><p>

13、  2.1最小值濾波for循環(huán)主要代碼;</p><p>  void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300])</p><p><b>  {</b></p><p>  int i,j,min;</p><p>  for(i=

14、1;i<300;i++)</p><p><b>  {</b></p><p>  for(j=1;j<300;j++)</p><p><b>  {</b></p><p>  min=inimage[1000][1000];</p><p>  if(in

15、image[i][j]<min)</p><p><b>  {</b></p><p>  min=inimage[i][j];</p><p><b>  }</b></p><p>  outimage[i][j]=min;</p><p><b>  

16、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  2.2代碼截圖;</b></p><p>  2.3實(shí)驗(yàn)的輸入圖像如下圖左,處理圖像如下圖右:</p><p>  二、利

17、用for、、、if判斷語句進(jìn)行編碼;</p><p>  1.1 最大值濾波的主要編碼;</p><p>  void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300])</p><p><b>  {</b></p><p>  int i

18、,j,max;</p><p>  for(i=1;i<300;i++)</p><p><b>  {</b></p><p>  for(j=1;j<300;j++)</p><p><b>  {</b></p><p>  max=inimage[i][

19、j];</p><p>  if(inimage[i-1][j]>max)</p><p><b>  {</b></p><p>  max=inimage[i-1][j];</p><p><b>  }</b></p><p>  if(inimage[i-1][

20、j-1]>max)</p><p><b>  {</b></p><p>  max=inimage[i-1][j-1];</p><p><b>  }</b></p><p>  if (inimage[i-1][j+1]>max)</p><p><

21、b>  {</b></p><p>  max=inimage[i-1][j+1];</p><p><b>  }</b></p><p>  if(inimage[i][j-1]>max)</p><p><b>  {</b></p><p> 

22、 max=inimage[i][j-1];</p><p><b>  }</b></p><p>  if(inimage[i][j+1]>max)</p><p><b>  {</b></p><p>  max=inimage[i][j+1];</p><p>

23、<b>  }</b></p><p>  if(inimage[i+1][j-1]>max)</p><p><b>  {</b></p><p>  max=inimage[i+1][j-1];</p><p><b>  }</b></p><

24、p>  if(inimage[i+1][j]>max)</p><p><b>  {</b></p><p>  max=inimage[i+1][j];</p><p><b>  }</b></p><p>  if(inimage[i+1][j+1]>max)</p&

25、gt;<p><b>  {</b></p><p>  max=inimage[i+1][j+1];</p><p><b>  }</b></p><p>  outimage[i][j]=max;</p><p><b>  }</b></p>

26、<p><b>  }</b></p><p><b>  }</b></p><p><b>  1.2編碼截圖:</b></p><p>  1.3 實(shí)驗(yàn)輸入圖像(左) 輸出圖像(右)</p><p>  2.1 最小值濾波的主要編碼;</p>&

27、lt;p>  void CTestVCView::test(BYTE inimage[300][300],BYTE outimage[300][300])</p><p><b>  {</b></p><p>  int i,j,min;</p><p>  for(i=1;i<300;i++)</p><p&

28、gt;<b>  {</b></p><p>  for(j=1;j<300;j++)</p><p><b>  {</b></p><p>  min=inimage[i][j];</p><p>  if(inimage[i-1][j]<min)</p><p

29、><b>  {</b></p><p>  min=inimage[i-1][j];</p><p><b>  }</b></p><p>  if(inimage[i-1][j-1]<min)</p><p><b>  {</b></p>&l

30、t;p>  min=inimage[i-1][j-1];</p><p><b>  }</b></p><p>  if (inimage[i-1][j+1]<min)</p><p><b>  {</b></p><p>  min=inimage[i-1][j+1];</p

31、><p><b>  }</b></p><p>  if(inimage[i][j-1]<min)</p><p><b>  {</b></p><p>  min=inimage[i][j-1];</p><p><b>  }</b></

32、p><p>  if(inimage[i][j+1]<min)</p><p><b>  {</b></p><p>  min=inimage[i][j+1];</p><p><b>  }</b></p><p>  if(inimage[i+1][j-1]<

33、min)</p><p><b>  {</b></p><p>  min=inimage[i+1][j-1];</p><p><b>  }</b></p><p>  if(inimage[i+1][j]<min)</p><p><b>  {<

34、;/b></p><p>  min=inimage[i+1][j];</p><p><b>  }</b></p><p>  if(inimage[i+1][j+1]<min)</p><p><b>  {</b></p><p>  min=inimag

35、e[i+1][j+1];</p><p><b>  }</b></p><p>  outimage[i][j]=min;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }<

36、/b></p><p><b>  2.2 編碼截圖;</b></p><p>  2.3,實(shí)驗(yàn)輸入圖像(左) 輸出圖像(右)</p><p><b>  編碼分析</b></p><p>  如右圖,可以令圖像中某一象素的位置坐標(biāo)為(s,t),其鄰域象素的坐標(biāo)位置就如右圖所示,因?yàn)樵趫D像中象

37、素的坐標(biāo)位置為二維數(shù)組,若用I,j代表s,t,則這九個(gè)點(diǎn)在程序輸入是的代碼為</p><p>  inimage[i-1][j]</p><p>  inimage[i-1][j-1]</p><p>  inimage[i-1][j+1]</p><p>  inimage[i][j-1]</p><p>  ini

38、mage[i][j]</p><p>  inimage[i][j+1]</p><p>  inimage[i+1][j-1]</p><p>  inimage[i+1][j]</p><p>  inimage[i+1][j+1]</p><p>  在最大值濾波中,只需要找出這九個(gè)位置的象素中灰度值最大的象素,

39、即若賦值(s,t)位置的象素灰度值最大(max= inimage[i][j]),只需要將另外八個(gè)位置象素的灰度值與其進(jìn)行大小比較,若大于inimage[i][j],則將其灰度值賦值于max,再將其他位置的象素灰度值與其進(jìn)行比較,直至找出這九個(gè)位置象素中灰度值最大的那個(gè)象素,然后將其灰度值代替中心象素(s,t)位置的象素灰度值。</p><p>  在最小值濾波中,只需要找出這九個(gè)位置象素中灰度值最小的象素,若賦值

40、(s,t)位置的象素灰度值最?。╩in=inimage[i][[j]),只需要將另外八個(gè)位置象素的灰度值與其進(jìn)行大小比較,若小于inimage[i][j],則將其灰度值賦值于min,再將其他位置的象素灰度值與其進(jìn)行比較,直至找這九個(gè)位置象素中灰度值最小的那個(gè)象素,然后再將其灰度值代替中心象素(s,t)位置的象素位置。</p><p>  在編碼過程中無論是使用for循環(huán)語句還是使用for、、、if,其編碼原理都大

41、致如此,只不過for循環(huán)語句比較簡(jiǎn)單,但是for循環(huán)的語句中,因?yàn)樵谒械臄?shù)組中,其灰度值的范圍是是[1 300],所以在對(duì)最大值max進(jìn)行賦值時(shí)一定要賦予一個(gè)最小的數(shù),目的就是為了讓圖像中所有象素的灰度值都大于max ,這樣就可以讓所有象素與max進(jìn)行循環(huán)比較;對(duì)最小值min進(jìn)行賦值時(shí)一定要賦予一個(gè)最大的數(shù),目的就是為了讓圖像中所有象素的灰度值都小于min,這樣就可以讓所有的象素與min進(jìn)行循環(huán)比較。</p><p

42、>  用For、、、if語句進(jìn)行編碼雖然麻煩,但是讀起來比較易懂,先把九個(gè)像素位置的灰度值表示出來,然后用所有象素的灰度值與其中一個(gè)象素灰度值逐依進(jìn)行比較,直至得出最大灰度值象素或最小灰度值象素。</p><p><b>  實(shí)驗(yàn)收獲:</b></p><p>  在這次小學(xué)期中,我對(duì)C語言有了更加深入地學(xué)習(xí),而且初步對(duì)VC++有了了解,將程序設(shè)計(jì)與圖像處理很好

43、的結(jié)合,在之前一直用PS等作圖軟件對(duì)圖像進(jìn)行處理的基礎(chǔ)上,也簡(jiǎn)單的學(xué)會(huì)了用C語言、VC++等程序?qū)D像進(jìn)行數(shù)字化處理。 </p><p>  這次小學(xué)期的主要任務(wù)是對(duì)圖像進(jìn)行增強(qiáng)處理,主要是運(yùn)用最大值濾波、最小值濾波對(duì)圖像進(jìn)行操作。通過學(xué)習(xí),不僅深入了解了圖像增強(qiáng)處理的方法和技巧,而且也對(duì)濾波有了更深入的了解,尤其是最大值濾波、最小值濾波、中值濾波、均值濾波等。在利用程序編碼對(duì)其進(jìn)行操作時(shí),也對(duì)程序編碼有了更深入

溫馨提示

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

評(píng)論

0/150

提交評(píng)論