欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      數(shù)字圖像處理課設(shè)報(bào)告

      時(shí)間:2019-05-12 01:56:52下載本文作者:會(huì)員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《數(shù)字圖像處理課設(shè)報(bào)告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《數(shù)字圖像處理課設(shè)報(bào)告》。

      第一篇:數(shù)字圖像處理課設(shè)報(bào)告

      數(shù)字圖像處理課程設(shè)計(jì)報(bào)告

      細(xì)胞識(shí)別

      目錄

      第一部分

      1、實(shí)驗(yàn)課題名稱--------------------3

      2、實(shí)驗(yàn)?zāi)康?-------------------------3

      第 1 頁

      3、實(shí)驗(yàn)內(nèi)容概要--------------------3 第二部分

      1、建立工程文件--------------------3

      2、圖像信息獲取--------------------4

      3、如何建立下拉菜單--------------6

      4、標(biāo)記Mark點(diǎn)----------------------6

      5、二值化9

      6、填洞---9

      7、收縮---10

      8、獲取中心點(diǎn)------------------------11

      9、細(xì)胞計(jì)數(shù)---------------------------13

      10、All-steps---------------------------13

      11、擴(kuò)展功能-------------------------14 第三部分

      12、各步驟結(jié)果和錯(cuò)誤舉例------16 第四部分

      13、心得體會(huì)--------------------------22

      第一部分

      1、實(shí)驗(yàn)課題:細(xì)胞識(shí)別

      2、實(shí)驗(yàn)?zāi)康模簩ρ杭?xì)胞切片圖片進(jìn)行各種處理,最終得出細(xì)胞的數(shù)目、面積等信息。

      3、實(shí)驗(yàn)內(nèi)容概要:基于VC++6.0軟件下的細(xì)胞識(shí)別,通過細(xì)胞的標(biāo)記、二

      第 2 頁 值化、填洞、收縮、獲取中心點(diǎn)、計(jì)數(shù)等過程完成實(shí)驗(yàn)?zāi)康摹?/p>

      第二部分——實(shí)驗(yàn)具體步驟

      1、建立工程文件

      ① 新建MFC工程項(xiàng)目:--MFC AppWizard、工程名

      ② 拷貝cdib.h,cdib.cpp到工程文件夾,再向工程里添加

      ③ doc.h添加變量:m_lpDib 和頭文件#include”cdib.h”

      ④ doc.cpp:變量(m_lpDib)的new、delete

      第 3 頁

      ⑤ doc.cpp: Serialize()

      2、圖像信息獲取

      ① 讀取圖像參數(shù)View.cpp: OnDraw()?m_pDib->Draw()如果圖像不為空的話,那么就執(zhí)行如下主要代碼:

      ② 點(diǎn)擊鍵,建立類向?qū)В趍essages中添加OnInitialUpdate()函數(shù),添加代碼實(shí)現(xiàn)對自動(dòng)打開固定圖片。

      ③ 通過鼠標(biāo)右擊,點(diǎn)擊建立類向?qū)?,在messages中添加OnMouseMove()函數(shù),添加代碼實(shí)現(xiàn)獲取所要信息,即實(shí)現(xiàn)鼠標(biāo)在圖像任一位置移動(dòng)時(shí)可以直觀的讀取相對應(yīng)位置的信息??梢栽谄聊簧巷@示鼠標(biāo)所指點(diǎn)的坐標(biāo)以及RGB、HSI和灰度值,通過HSI的可以選取合適的閾值來找到細(xì)胞以及邊界。

      第 4 頁 ④ 為了RGB圖像轉(zhuǎn)化為人眼更容易識(shí)別的HSI模型,我們可以通過添加成員函數(shù)RgbtoHsi來實(shí)現(xiàn)這一功能。

      HSI模型與RGB模型的轉(zhuǎn)化關(guān)系

      (添加函數(shù)時(shí),可以右擊類窗口中的view.h,選中add member function,之后選擇函數(shù)的返回值類型和函數(shù)描述,其它默認(rèn)不變)

      確定后在里面添加實(shí)現(xiàn)函數(shù)功能的代碼。

      3、添加下拉菜單

      在resourceview那欄的找到菜單按鍵設(shè)置

      第 5 頁 雙擊,后在里面添加所需按鍵

      每個(gè)按鍵的ID號(hào)為注意在填寫為IDR_加菜單大寫。

      之后右擊按鍵,建立類向?qū)砑影存I所需函數(shù)

      4、標(biāo)記mark 分為四步

      1.找出mark(red)點(diǎn)和maybemark(blue)點(diǎn)

      2.將maybemark(blue)點(diǎn)變成mark(black red)點(diǎn)

      3.將mark(black red)點(diǎn)變成edge(yellow(fullred&&fullgreen))點(diǎn) 4.edge點(diǎn)濾波

      基本思想:Mark點(diǎn)指的是我們要尋找的細(xì)胞內(nèi)的點(diǎn)。我們先獲取每一個(gè)像素點(diǎn)的RGB分量,然后我們將其轉(zhuǎn)化成HSI分量,將H分量進(jìn)行歸一化,因?yàn)镾的范圍是0到1,所以我們要進(jìn)行尺度的一致,這樣才具有可計(jì)算性。然后我們通過每個(gè)像素點(diǎn)的H分量和S分量的值與細(xì)胞內(nèi)部的H分量和S分量計(jì)算歐幾里得距離,設(shè)定一個(gè)Mark門限值(我們這里將MarkDoor設(shè)置為0.09,大家可以行設(shè)置合適的參數(shù)),小于這個(gè)門限值我們就當(dāng)做是細(xì)胞的內(nèi)部,然后對細(xì)胞進(jìn)行標(biāo)記(Red)。還需要設(shè)定一個(gè)Maybe Mark門限值(我們這里將Maybe MarkDoor設(shè)置為0.15,大家可以行設(shè)置合適的參數(shù)),我們大于Mark門限值小于Maybe Mark門限值時(shí),我們暫時(shí)看成是細(xì)胞,我們進(jìn)行Maybe Mark的標(biāo)記(Blue)。否則的話,我們需要考慮,一些不是Mark和Maybe Mark點(diǎn)的*lpSrc==0我們區(qū)別一下賦值為1,*lpSrc==255

      第 6 頁 我們區(qū)別一下賦值為254,*(lpSrc+1)==255我們區(qū)別一下賦值為254.這樣的話,我們在后面判斷是否為Mark點(diǎn)的時(shí)候,我們只需要判斷*lpSrc是否為0就可以了,判斷Maybe Mark點(diǎn)時(shí)只需要判斷*(lpSrc)是否為255就可以了。對于邊緣的判斷只需要判斷*(lpSrc+1)是否為255就可以了。

      將細(xì)胞標(biāo)記為Mark用紅色(255,0,0)標(biāo)記出來,將可能是的細(xì)胞標(biāo)記為MayBe Mark用藍(lán)色(0,0,255)標(biāo)記出來。將MayBeMark To Mark的區(qū)域用亮紅(128,0,0)表示,將不可能是細(xì)胞的區(qū)域、細(xì)胞邊界分別用綠色標(biāo)記出來。操作過程:(1)根據(jù)H、S的歐幾里得距離sqrt(s2+h2)來大致的確定哪些是細(xì)胞(Mark)和可能是細(xì)胞(Maybe Mark)的點(diǎn)。

      (2)根據(jù)Maybe Mark點(diǎn)周圍的情況,如果它的上下左右四個(gè)方向有Mark點(diǎn),則將Maybe Mark點(diǎn)變成Mark點(diǎn)。

      (3)用Sobel算子來做邊緣的提取邊界(0,255,255)(255,255,0),使用3*3的模板,使用歐幾里得距離來判斷是否為邊緣。

      兩種Sobel算子如下:

      第 7 頁

      主要代碼如下:

      doubletmp1=pixel[0]+2*pixel[1]+pixel[2]-pixel[6]-2*pixel[7]-pixel[8];doubletmp2=pixel[0]+2*pixel[3]+pixel[6]-pixel[2]-2*pixel[5]-pixel[8];double edge=sqrt(tmp1*tmp1+tmp2*tmp2);

      if(edge>edgeDoor)*(lpDst+1)=255;//Sobel判斷該點(diǎn)是否edge//edgeDoor=40(4)edge濾波

      就是去除全邊緣點(diǎn)(四周都是背景或邊緣)(強(qiáng)度為5)

      5、二值化

      基本思想:將原有彩色圖像變換為二值圖像,其中細(xì)胞0X80(128)用Gray(灰色)標(biāo)記出來,邊緣0xF0(240)用Bright(亮色)標(biāo)記出來,其他表示為0。主要代碼:

      第 8 頁

      6、填洞

      將細(xì)胞中或者細(xì)胞相鄰的地方的較小的背景填成細(xì)胞的背景,填完的細(xì)胞背景的灰度值是129,因?yàn)槎急辉L問過了,然后將邊緣去掉。

      填洞的基本思想:首先將細(xì)胞或邊緣內(nèi)的黑點(diǎn)置為vistied = 0x01,以該黑點(diǎn)為中心,在其上下左右側(cè)進(jìn)行訪問是否有未訪問的黑點(diǎn),若有則將上方黑點(diǎn)壓棧,且上下左右側(cè)的黑點(diǎn)置已訪問。將堆棧頂端的數(shù)據(jù)彈出,作為新的種子進(jìn)行擴(kuò)散,即以該元素為基點(diǎn),判斷其周圍是否存在未訪問黑點(diǎn),若有則繼續(xù)壓棧,重復(fù)操作。直到找到最后一點(diǎn),此點(diǎn)四周均不存在未訪問黑點(diǎn),結(jié)束訪問。若洞像素?cái)?shù)小于100大于50,洞內(nèi)像素?cái)?shù)及其初進(jìn)棧的點(diǎn)(56,(409,222))時(shí),則進(jìn)行填洞。填洞的過程就是將非mark點(diǎn)轉(zhuǎn)化為mark點(diǎn)。

      主要標(biāo)記訪問代碼:

      填洞函數(shù)主要代碼分析:

      填完洞后,進(jìn)行下面操作:

      如果圖像中只有已訪問黑點(diǎn)0x01則將其恢復(fù)成0;如果圖像中只有Edge點(diǎn)0xf0則將 Edge置為黑點(diǎn)。這樣圖像中只有黑色的背景以及灰色的細(xì)胞mark(0x80)點(diǎn)。

      主要代碼:

      第 9 頁

      7、收縮

      收縮的目的是為了方便計(jì)數(shù)。通過掃描圖像,對圖像進(jìn)行預(yù)先的3次腐蝕,判斷所生成邊界點(diǎn),然后根據(jù)原理判定是否標(biāo)注該點(diǎn),存放所標(biāo)志的中心點(diǎn),便于統(tǒng)計(jì)細(xì)胞個(gè)數(shù)及計(jì)算細(xì)胞半徑。

      由Mark生成邊界,我們有四鄰域生成邊界和八鄰域生成邊界。判斷該點(diǎn)是否為Mark點(diǎn),如果是Mark點(diǎn)的話,我們判斷i、j是否是我們選取圖片的邊界,如果是的話,我們將該點(diǎn)變成邊緣點(diǎn),否則我們判斷它的上下左右(周圍八個(gè)點(diǎn))是否有非Mark點(diǎn),如有有,則將這邊變成邊緣點(diǎn),反之,不變。

      8鄰域收縮操作代碼(4鄰域與8鄰域思想相同):

      第 10 頁

      8、獲取中心點(diǎn)

      根據(jù)前面所作工作統(tǒng)計(jì)獲得的中心點(diǎn)個(gè)數(shù),去掉一系列不符合要求的點(diǎn)得出最終的細(xì)胞個(gè)數(shù)、細(xì)胞的平均半徑和平均面積,用對話框輸出統(tǒng)計(jì)結(jié)果。

      操作過程如下:

      ① 首先我們要去除訪問標(biāo)志,是我們先前一次在判斷是否需要保存點(diǎn)的時(shí)候(MarkIt(int i, int j)),我們將邊緣點(diǎn)都標(biāo)記成訪問過了,這時(shí)在處理下一次遍歷圖片發(fā)現(xiàn)中心點(diǎn)的時(shí)候,我們要進(jìn)行判斷點(diǎn)是否要保存就沒有辦法做了,所以在沒進(jìn)行一次圖片的遍歷之前我們都需要去除訪問標(biāo)志。主要代碼:*lpSrc&=NO_VISITED;//0xfe// 清除visited標(biāo)志

      最后位 置0操作

      ② 需要判斷是否是邊界以外的點(diǎn),這里我們只處理邊界內(nèi)部的點(diǎn),對于邊界外部的點(diǎn)不加以查找中心點(diǎn)。對于內(nèi)部的點(diǎn),我們先要判斷是否是孤立的邊緣點(diǎn),即判斷該邊緣點(diǎn)的上下左右四個(gè)點(diǎn)都不是Mark點(diǎn)和邊緣點(diǎn)我們認(rèn)為是孤立的邊緣點(diǎn),但是我們在這里也要去除半徑不大于2的孤立點(diǎn),因?yàn)槲覀冋J(rèn)為它的半徑太小,是噪聲。如果是半徑大于2的孤立點(diǎn),我們對他進(jìn)行標(biāo)記成中心點(diǎn),對半徑做一點(diǎn)補(bǔ)償(pt.radius=k+pre_shrink_count+4,4為補(bǔ)償)。然后在入隊(duì)。

      主要代碼如下:

      {

      第 11 頁 if(k<3)// 如果進(jìn)行第一次收縮即消失的點(diǎn)則認(rèn)為該點(diǎn)是噪點(diǎn),不進(jìn)行保存直接進(jìn)行下一次收縮

      continue;

      // 孤立的點(diǎn)

      *lpSrc |=CENTERED;//0x2 對孤立點(diǎn)加上中心點(diǎn)標(biāo)志0xf2//后面shrink時(shí)為0x02

      // 保存一下CENTER_POINT信息(圓心,半徑)

      pt.x=i;pt.y=j;pt.radius=k + pre_shrink_count + 4;// +4放大補(bǔ)償,k為把此圓收縮到一點(diǎn)所經(jīng)歷的收縮次數(shù)

      points_temp.push_back(pt);continue;}

      ③ 需要判斷是否需要保存該點(diǎn),我們在判斷它的上下左右是否有沒有訪問過的邊緣點(diǎn),這里我們運(yùn)用遞歸函數(shù)來找相連通的邊緣點(diǎn),如果是全邊緣點(diǎn)的時(shí)候我們就需要保存,即將m_bFullEdge=1。在保存的函數(shù)中我們將該點(diǎn)變成中心點(diǎn),然后半徑補(bǔ)償然后我們來對該點(diǎn)入隊(duì)(保存),然后將該點(diǎn)設(shè)置成沒有訪問過的點(diǎn),因?yàn)橄旅嬖谧鲈擖c(diǎn)的上下左右是否為訪問過的,訪問過才保存,因?yàn)檫@個(gè)點(diǎn)已經(jīng)保存過了,所以要將保存過的點(diǎn)設(shè)置成沒有訪問過,我們必須將這點(diǎn)變成沒有訪問過。然后判斷該點(diǎn)的周圍八點(diǎn)是否是訪問過的,如果訪問過就保存該點(diǎn),這里也是運(yùn)用遞歸函數(shù)來實(shí)現(xiàn)的。

      對中心點(diǎn)處理:

      a)獨(dú)立的中心點(diǎn)直接存儲(chǔ)

      b)相鄰的中心點(diǎn)通過遞歸求質(zhì)心作為圓心,最大半徑作為新的半徑,合并各中心為一點(diǎn)

      主要代碼如下:

      pt.x=tot_x/tot_num;//質(zhì)心 pt.y=tot_y/tot_num;pt.radius=max_radius;//取最大半徑作為質(zhì)點(diǎn)中心點(diǎn)半徑 *(lpSrc-(pt.y-j)*lLineBytes+pt.x-i)|=CENTERED;//質(zhì)點(diǎn)置為中心點(diǎn) points.push_back(pt);c)相近但不相鄰的點(diǎn),求質(zhì)心為圓心,最大半徑為半徑(直到無相近點(diǎn))

      主要代碼如下:

      if(abs(x0-x)+abs(y0-y)<10)// 相近

      {

      /*pt=points.at(j);if(points.at(i).radius

      pt=points.at(i);*/ points.at(i).x=(x+x0)/2;//取均值,保存最大半徑

      第 12 頁

      points.at(i).y=(y+y0)/2;points.at(i).radius=max(points.at(i).radius,points.at(j).radius)+4;pt=pt=points.at(i);d)在無相近點(diǎn)的情況下,若半徑小于8,則刪除。

      主要代碼如下:

      if(bdelete)

      {

      } e)兩圓相交,若其中一圓非相交部分面積小于50%,則刪除

      主要代碼如下:

      if(total

      9、細(xì)胞計(jì)數(shù)

      打開我們處理前的圖片,根據(jù)前面保存中心點(diǎn)的隊(duì)列,我們知道中心點(diǎn)的位置和細(xì)胞的半徑,然后我們重新的導(dǎo)入細(xì)胞的圖片,在上面畫圓,標(biāo)出細(xì)胞。然后我們獲取細(xì)胞內(nèi)部的HSI的最大值和最小值,計(jì)算出細(xì)胞的平均面積和個(gè)數(shù)。主要代碼如下:

      msg.Format(“共有%d個(gè)細(xì)胞,平均半徑%d,平均面積%d : H(%3.1f,%3.1f)S(%3.2f,%3.2f)I(%3.2f,%3.2f)”, m_vCenterPoints.size(),(int)(totr/m_vCenterPoints.size()+.5),(int)(tota/m_vCenterPoints.size()+.5), 360.0*min[0]/255.0,360.0*max[0]/255.0, 1.0*min[1]/255.0,1.0*max[1]/255.0, 1.0*min[2]/255.0,1.0*max[2]/255.0);

      10、All-steps

      第 13 頁 可以一次性實(shí)現(xiàn)細(xì)胞識(shí)別的所有操作步驟

      設(shè)置控制按鍵的權(quán)限,點(diǎn)擊update_command_ui ,鍵入控制條件

      每步操作時(shí)給cellprocess設(shè)置不同數(shù)值,表示那步進(jìn)行過,只能進(jìn)行規(guī)定的下步操作,從而在運(yùn)行過程中放置按鍵誤觸導(dǎo)致程序崩潰。

      11、擴(kuò)展:

      區(qū)域選擇:

      第 14 頁

      建立類向?qū)В篛nButtonDown 和OnButtonUp 鍵入代碼:

      在OnDraw中添加下列代碼

      注意:bool 變量m_bDrag要定義在view.cpp文件頭部,定義在view.h會(huì)出現(xiàn)第一次區(qū)域選擇時(shí)出現(xiàn)錯(cuò)誤。

      添加復(fù)位按鍵:

      第 15 頁

      點(diǎn)擊該鍵后會(huì)重新讀取圖像(和圖像自動(dòng)打開代碼一樣)

      第三部分

      12、各步驟結(jié)果和錯(cuò)誤舉例

      ① 各步驟結(jié)果圖

      a.Mark(Red)& MayBe Mark(Blue)

      maybemark to mark(black red)第 16 頁

      edge information and edge filter

      twovalue

      fillholes 第 17 頁

      shrink

      findcenter 第 18 頁

      count

      出現(xiàn)的錯(cuò)誤舉例:

      Mousemove 程序中出現(xiàn)問題: 1.錯(cuò)誤:

      沒有加#include “MainFrm.h”頭文件 2.錯(cuò)誤

      第 19 頁

      error C2248: 'm_wndStatusBar' : cannot access protected member declared in class 'CMainFrame'

      需將protected: // control bar embedded members CStatusBar m_wndStatusBar;CToolBar

      m_wndToolBar;

      protected變?yōu)閜ublic 供用戶操作使用

      MouseMove函數(shù)中((CMainFrame*)AfxGetMainWnd())->m_wndStatusBar.SetPaneText(0,str);使str.Format中內(nèi)容顯示在標(biāo)準(zhǔn)窗口圖像的左下方bar

      3.MouseMove的坐標(biāo)判決放在for循環(huán)外,鼠標(biāo)移動(dòng)到圖像外,程序會(huì)崩潰。解決:改變坐標(biāo)判決代碼的位置

      通見問題:

      在ClassView中的類視圖不見了,在FileView視圖中該類的.h和.cpp文件仍然存在

      解決方案:先保存workspace,然后關(guān)閉工程,刪除此工程目錄中的.ncb文件,重新打開workspace 原因:classview顯示混亂 在類中添加的成員變量和成員函數(shù)不能顯示出來,即使顯示出來了變量或函數(shù),雙擊后不能跳至正確的位置。

      第 20 頁

      Edge information中出現(xiàn)問題

      正常

      不正常

      memcpy(lpNewDIBBits,lpSrc,lHeight *lLineBytes);代碼應(yīng)放在圖像處理前,參考圖像是初始狀態(tài)的圖像,把第一步的四個(gè)小步驟分開寫在不同的函數(shù)內(nèi)時(shí),因?yàn)槊恳恍〔降牟僮鞫紩?huì)改變圖像的狀態(tài),如果把: memcpy(lpNewDIBBits,lpSrc,lHeight *lLineBytes);寫在maybemark_to_mark之后那么參考圖像就不是原始圖像

      發(fā)現(xiàn):做到shrink時(shí),看到收縮后的圖像效果很差,和標(biāo)準(zhǔn)收縮圖像相差較大,經(jīng)調(diào)試后發(fā)現(xiàn)問題(沒注意 ppt最后一頁有,老師在qq群在中也提到過)。

      Shrink操作后,關(guān)閉圖像,出現(xiàn)問題 GenEdge4()函數(shù)中出現(xiàn)問題 for(int j=0;j

      {

      lpSrc =(unsigned char *)pDoc->m_lpDib->m_lpImage + lLineBytes*(lHeight-1-j)-1;

      for(int i=0;i

      {

      lpSrc++;......和

      for(int j=0;j

      for(int i=0;i

      {

      第 21 頁 lpSrc =(unsigned char *)pDoc->m_lpDib->m_lpImage + lLineBytes*(lHeight-1-j)-i;....for循環(huán)問題 有差異

      后面起始點(diǎn)地址為dot1 前面起始點(diǎn)地址為 dot1+1,不處理四周邊界

      可以把第二個(gè)for循環(huán)語句中前面的i=0 改成i=1.觀察圖像,發(fā)現(xiàn)Shirnk后未保存填洞點(diǎn),結(jié)果只有 0x00 0x80 0xf0 //

      *lpSrc &=NO_EDGE_POINT;//至關(guān)重要

      少寫后,程序一直崩潰。

      這段代碼在GenEdge函數(shù)中,在shrink步驟中沒影響,但在找中心點(diǎn)過程中用到這個(gè)函數(shù)時(shí),這段代碼就十分必要。否則程序會(huì)在運(yùn)行findcenter時(shí)直接崩潰。

      中心點(diǎn)標(biāo)志 0x02

      不是0xf2

      Temp.at(n).y 等同于 temp[n].y

      13、心得體會(huì)

      通過對本次數(shù)字圖像處理課程設(shè)計(jì)的學(xué)習(xí),進(jìn)一步加深了對數(shù)圖知識(shí)的理解,同時(shí)也基本掌握了VC++軟件的使用方法。從一開始的連圖像都無法打開,到最后在老師上課的資料以及同學(xué)的幫助和學(xué)長的參考程序下終于完成了一幅細(xì)胞圖像的整個(gè)識(shí)別過程。自己一向在編程方面有所欠缺,通過咨詢老師和同學(xué)還有百度,自己也慢慢理解了所寫程序代碼的含義,間接地提高了自己寫代碼與識(shí)別代碼的能力。

      通過一個(gè)星期多的學(xué)習(xí),我對細(xì)胞識(shí)別的基本思想有了深一步的理解,也讓我對c語言相關(guān)的知識(shí)得到了回顧。此次課程設(shè)計(jì)給我們提供了一個(gè)既能學(xué)習(xí)又能鍛煉的機(jī)會(huì),使我們養(yǎng)成了查找資料(主要是在百度上查閱一些代碼的含義)的習(xí)慣,將理論與實(shí)際相結(jié)合起來,鍛煉了分析問題和實(shí)際解決問題的能力。提高了適應(yīng)能力,為今后的學(xué)習(xí)和實(shí)踐打下了基礎(chǔ)。

      第 22 頁

      第二篇:《數(shù)字圖像處理》

      實(shí)驗(yàn)五 圖像的幾何變換

      一.實(shí)驗(yàn)?zāi)康募耙?/p>

      掌握圖像幾何變換的基本原理,熟練掌握數(shù)字圖像的縮放、旋轉(zhuǎn)、平移、鏡像和轉(zhuǎn)置的基本原理及其MATLAB編程實(shí)現(xiàn)方法。

      二、實(shí)驗(yàn)內(nèi)容

      (一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié)果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗(yàn)結(jié)果。

      1.圖像縮放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;

      % 將圖像放大1.35倍

      J1 = imresize(I, Scale, 'nearest');

      % using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');

      % using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize

      % 查看imresize使用幫助

      1.95倍

      I = imread('cameraman.tif');Scale = 1.96;

      % 將圖像放大1.96倍

      J1 = imresize(I, Scale, 'nearest');

      % using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');

      % using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');

      說明:

      ?注意觀察不同插值方法的圖像表現(xiàn); ?改變圖像縮放因子Scale,重做上述實(shí)驗(yàn)。2.圖像旋轉(zhuǎn)

      clear all, close all I = imread('cameraman.tif');Theta = 45;

      % 將圖像逆時(shí)針旋轉(zhuǎn)45?。

      J1 = imrotate(I, Theta, 'nearest');

      % using the nearest neighbor interpolation Theta =-45;

      % 將圖像順時(shí)針旋轉(zhuǎn)45?。

      J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用幫助 help imrotate %-------

      圖像旋轉(zhuǎn)30順時(shí)針逆時(shí)針

      clear all, close all I = imread('cameraman.tif');Theta = 30;

      % 將圖像逆時(shí)針旋轉(zhuǎn)30。

      J1 = imrotate(I, Theta, 'nearest');

      % using the nearest neighbor interpolation Theta =-30;

      % 將圖像順時(shí)針旋轉(zhuǎn)30。

      J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7 說明:

      ?注意觀察不同插值方法和輸出圖像后處理方法的圖像表現(xiàn); ?改變旋轉(zhuǎn)角度大小和方向,重做上述實(shí)驗(yàn)。

      3.圖像水平鏡象

      clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);

      I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----

      (二)用MATLAB編程實(shí)現(xiàn)以下圖像幾何變換(參考自編講義相關(guān)章節(jié))

      1.圖像扭曲變換 2.球面變換

      三、實(shí)驗(yàn)設(shè)備

      1.PIII以上微機(jī); 2.MATLAB6.5;

      四、預(yù)習(xí)與思考

      1.預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,閱讀教材熟悉實(shí)驗(yàn)原理;

      2.查閱資料,熟悉實(shí)驗(yàn)中涉及的有關(guān)MATLAB函數(shù);

      3.利用課余時(shí)間,采用MATLAB底層函數(shù)編程實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容

      (二)中的圖像平移、圖像轉(zhuǎn)置等幾何變換。

      五、實(shí)驗(yàn)報(bào)告要求

      1.簡述試驗(yàn)的目的和試驗(yàn)原理;

      2.?dāng)⑹龈鞫纬绦蚬δ埽淖冇嘘P(guān)函數(shù)的參數(shù),分析比較實(shí)驗(yàn)結(jié)果; 3.打印出所編寫的實(shí)驗(yàn)程序。4.寫出本實(shí)驗(yàn)的心得體會(huì)及意見。

      實(shí)驗(yàn)六

      數(shù)字圖像處理應(yīng)用

      一.實(shí)驗(yàn)?zāi)康募耙?/p>

      1.利用MATLAB提供的圖像處理函數(shù)實(shí)現(xiàn)圖像中物體屬性的測量; 2.訓(xùn)練綜合運(yùn)用MATLAB圖像處理函數(shù)的能力; 3.了解數(shù)字圖像處理基本應(yīng)用。

      二、實(shí)驗(yàn)內(nèi)容

      以大米粒特性測量為例,綜合應(yīng)用課程中圖像分割、形態(tài)學(xué)濾波、圖像增強(qiáng)、圖像特征提取等圖像處理方法,實(shí)現(xiàn)大米粒特性自動(dòng)測量。實(shí)驗(yàn)過程簡述:

      1. 讀取和顯示圖像 2. 估計(jì)圖像背景 3. 獲取背景均勻的圖像 4. 圖像增強(qiáng) 5. 圖像二值化分割 6. 區(qū)域標(biāo)記及為彩色處理

      7. 測量圖像中的區(qū)域特性(面積、質(zhì)心等)

      8.統(tǒng)計(jì)大米粒的特性分布規(guī)律。

      (一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié) 果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗(yàn)結(jié)果。

      % Read and Display an Image clear, close all,close all;I = imread('rice.png');

      figure, imshow(I)

      % Use Morphological Opening to Estimate the Background

      background = imopen(I,strel('disk',15));

      figure, imshow(background);

      %Display the Background Approximation as a Surface

      figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);

      % Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12

      (詳見MATLAB IPT的 幫助文檔demo中的Correcting Nonuniform Illumination)

      (二)查看MATLAB IPT 幫助文檔,研究其它應(yīng)用演示

      三、實(shí)驗(yàn)設(shè)備 1.PIII以上微機(jī); 2.MATLAB6.5;

      四、預(yù)習(xí)與思考

      1.預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,閱讀教材熟悉實(shí)驗(yàn)原理; 2.查閱資料,熟悉實(shí)驗(yàn)中涉及的有關(guān)函數(shù)。

      3.利用課余時(shí)間,采用MATLAB函數(shù)編程實(shí)現(xiàn)實(shí)驗(yàn)內(nèi)容

      (二)。

      五、實(shí)驗(yàn)報(bào)告要求

      1.簡述試驗(yàn)的目的和試驗(yàn)原理;

      2.?dāng)⑹龈鞫纬绦蚬δ?,改變有關(guān)函數(shù)的參數(shù),分析比較實(shí)驗(yàn)結(jié)果; 3.打印出所編寫的實(shí)驗(yàn)程序。4.寫出本實(shí)驗(yàn)的心得體會(huì)及意見。

      第三篇:數(shù)字圖像處理

      中南大學(xué)

      數(shù)字圖像處理實(shí)驗(yàn) 實(shí)驗(yàn)名稱:空間濾波和頻域?yàn)V波

      班級:電子信息0802班

      姓名:李哲 學(xué)號(hào):0909080609 實(shí)驗(yàn)日期:2010年12月22日

      目錄

      一,實(shí)驗(yàn)?zāi)康???????????????????????3 二,給圖像添加噪聲????????????????????4 三,對被噪聲污染的圖像進(jìn)行中值濾波和均值濾波???????5 四,對圖像進(jìn)行空間域的銳化????????????????6 五,MATLAB以外函數(shù)空間濾波和圖像銳化??????????7 六,自帶函數(shù)傅立葉變換和反變換??????????????8 七,低通濾波器程序????????????????????9 八,心得體會(huì) ??????????????????????10 九,參考文獻(xiàn) ??????????????????????10

      一、實(shí)驗(yàn)?zāi)康?1,空間濾波:

      圖像平滑主要目的是減少噪聲。噪聲有很多種類,不同的噪聲有不同的抑制措施。本實(shí)驗(yàn)要求用平滑線性濾波和中值濾波2種最典型、最常用的處理算法進(jìn)行程序設(shè)計(jì),學(xué)習(xí)如何對已被噪聲污染的圖像進(jìn)行“凈化”。通過平滑處理,對結(jié)果圖像加以比較,得出自己的實(shí)驗(yàn)結(jié)論。學(xué)習(xí)如何用銳化處理技術(shù)來加強(qiáng)圖像的目標(biāo)邊界和圖像細(xì)節(jié),對圖像進(jìn)行梯度算子、拉普拉斯算子,使圖像的某些特征(如邊緣、輪廓等)得以進(jìn)一步的增強(qiáng)及突出。本實(shí)驗(yàn)銳化處理主要在空間域中進(jìn)行 2,頻域?yàn)V波:

      掌握傅里葉變換的基本性質(zhì); 掌握傅里葉正變換和反變換; 通過實(shí)驗(yàn)了解二維頻譜的分布特點(diǎn); 掌握怎樣利用傅立葉變換進(jìn)行頻域?yàn)V波

      利用MATLAB程序數(shù)字圖像的傅立葉變換并且進(jìn)行頻域?yàn)V波

      二,給圖像添加椒鹽噪聲或者高斯噪聲: 原理:利用MATLAB自帶函數(shù)添加噪聲 程序代碼:A=imread('onion.png');I=rgb2gray(A);imshow(I);J = imnoise(I,'salt & pepper',0.05);figure,imshow(J),title('椒鹽噪聲');%添加椒鹽噪聲 K = imnoise(I,'gaussian',0,0.03);

      figure,imshow(K),title('高斯噪聲');%添加高斯噪聲

      三,對被噪聲污染的圖像進(jìn)行中值濾波和均值濾波: 原理:自帶函數(shù)進(jìn)行中值濾波和均值濾波 源程序:A=imread('onion.png');I=rgb2gray(A);J = imnoise(I,'salt & pepper',0.05);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);imshow(J),title('原圖');figure,imshow(k2),title('中值濾波5*5模板');figure,imshow(k3),title('中值濾波7*7模板');

      四,對圖像進(jìn)行空間域的銳化: 原理:自帶函數(shù)進(jìn)行空間銳化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原圖像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子銳化圖像');

      五,MATLAB以外函數(shù)空間濾波和圖像銳化:

      源程序:I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J);title('噪聲干擾圖像')figure, imshow(K);title('medfilt2濾波圖像')X=J;a=2;b=2;k=floor(a*b/2)+1;[M,N]=size(X);uint8 Y=zeros(M,N);funBox=zeros(a,b);temp=zeros(a*b);

      for i=1:M-a

      for j=1:N-b

      funBox=X(i:i+a,j:j+b);

      temp=funBox(:);

      tempSort=sort(temp);

      Y(i,j)=tempSort(k);

      end;end;figure, imshow(Y);title('濾波圖像')

      六,利用Matlab的圖像處理工具箱中提供的函數(shù)實(shí)現(xiàn)圖像的傅立葉變換和反變換: 源程序:

      A=imread('onion.png');f=rgb2gray(A);subplot(131),imshow(f),title('原圖');F=fft2(f);% 快速傅立葉變換

      subplot(132),imshow(F),title('傅里葉變換')Fabs=abs(F);% 求幅頻絕對值 Fc=fftshift(Fabs);% 中心移位 SFc=log(1+Fc);% 對數(shù)變換

      iFc1=ifftshift(Fc);% 中心移位的逆變換,絕對值 iF2=ifft2(iFc1);% 快速傅立葉變換的逆變換

      subplot(133),imshow(iF2),title('快速傅立葉變換的逆變換')

      七,低通濾波器程序:

      I=imread('testpat1.png');subplot(221),imshow(I);title('原始圖像')J1=imnoise(I,'gaussian',0.02);% 疊加高斯白噪聲

      subplot(222),imshow(J1);title('添加高斯白噪聲的圖像')f=double(J1);

      % 數(shù)據(jù)類型轉(zhuǎn)換 g=fft2(f);

      % 傅立葉變換 g=fftshift(g);

      [M,N]=size(g);nn=2;

      % 二階巴特沃斯(Butterworth)低通濾波器 d0=50;

      % 設(shè)置截止頻率 m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N

      d=sqrt((i-m)^2+(j-n)^2);

      h=1/(1+0.414*(d/d0)^(2*nn));% 計(jì)算低通濾波器傳遞函數(shù)

      result(i,j)=h*g(i,j);end end result=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));subplot(223),imshow(J3);title('低通濾波后圖像')

      心得體會(huì)

      1,進(jìn)一步熟悉了Matlab軟件、編程以及圖像處理工具箱 2,學(xué)會(huì)利用自帶函數(shù)對圖像做簡單的處理,例如:均值化等。3,熟練了一些基本函數(shù)的運(yùn)用,例如fspecial,imfilter等。4,加深了對MATLAB編程的理解。

      5,對于試驗(yàn)中的出現(xiàn)的一些問題,懂得怎樣去處理。6,通過實(shí)際操作,增強(qiáng)了自己的動(dòng)手能力,把理論用于實(shí)踐。

      參考文獻(xiàn):數(shù)字圖像處理第二版

      MATLAB教程

      第四篇:數(shù)字圖像處理上機(jī)報(bào)告

      練習(xí)一 常用MATLAB圖像處理命令

      一、練習(xí)目的

      1、熟悉并掌握MATLAB工具的使用;

      2、實(shí)現(xiàn)圖像的讀取、顯示、代數(shù)運(yùn)算和簡單變換。

      二、練習(xí)環(huán)境

      Windows操作系統(tǒng)

      Matlab 6.5或以上應(yīng)用軟件

      三、練習(xí)內(nèi)容

      1、圖像文件的讀寫

      (1)imread函數(shù)用來實(shí)現(xiàn)圖像文件的讀取。輸入以下程序:

      A=imread('文件名.擴(kuò)展名');%用imread函數(shù)來讀入圖像 注:設(shè)置路徑 imshow(A);%用imshow函數(shù)來顯示圖像 得到的結(jié)果如圖:

      (2)imfinfo函數(shù)用來查詢圖像文件信息。輸入以下程序:

      info=imfinfo('文件名.擴(kuò)展名');% 用imfinfo函數(shù)查詢圖像文件信息 得到: info =

      Filename: '文件名.擴(kuò)展名'

      (4)imshow函數(shù)用來顯示圖像。

      剛才介紹imread函數(shù)時(shí)已使用此函數(shù)。

      (5)colorbar函數(shù)將顏色條添加到坐標(biāo)軸對象中。輸入以下程序:

      RGB=imread('***');%圖像讀入

      I=rgb2gray(RGB);%把RGB圖像轉(zhuǎn)換成灰度圖像

      imshow(I),colorbar('vert')% 將顏色條添加到坐標(biāo)軸對象中

      得到如圖:

      2、圖像處理的基本操作

      一、圖像代數(shù)運(yùn)算

      (1)imadd函數(shù)實(shí)現(xiàn)兩幅圖像的相加或者給一幅圖像加上一個(gè)常數(shù)。給圖像每個(gè)像素都增加亮度的程序如下: I=imread('***');J=imadd(I,100);%給圖像增加亮度 subplot(1,2,1),imshow(I)%填充 subplot(1,2,2),imshow(J)結(jié)果如圖5。

      (2)imsubtract函數(shù)實(shí)現(xiàn)從一幅圖像中減去一個(gè)常數(shù)。輸入以下程序?qū)崿F(xiàn)從一幅圖像中減去一個(gè)常數(shù):

      (3)immultiply實(shí)現(xiàn)兩幅圖像的相乘或者一幅圖像的亮度縮放(圖像乘以小于1或大于1的參數(shù),比較效果)。輸入以下程序:

      (4)imdivide函數(shù)實(shí)現(xiàn)兩幅圖像的除法或一幅圖像的亮度縮放。輸入以下程序:

      二、圖像的空間域操作

      (1)imrotate函數(shù)實(shí)現(xiàn)圖像的旋轉(zhuǎn)。輸入以下程序: I=imread('***');J=imrotate(I,45);%對圖像進(jìn)行旋轉(zhuǎn) subplot(1,2,1),imshow(I);subplot(1,2,2),imshow(J);得到圖:

      練習(xí)二 數(shù)字圖像處理的基本操作

      一、練習(xí)目的

      1、練習(xí)使用MATLAB工具進(jìn)行數(shù)字圖像處理;

      2、實(shí)現(xiàn)圖像的邊緣提取、濾波、直方圖修正等操作。

      二、練習(xí)環(huán)境

      Windows操作系統(tǒng)

      Matlab 6.5或以上應(yīng)用軟件

      三、練習(xí)內(nèi)容

      (1)imresize函數(shù)實(shí)現(xiàn)圖像的縮放。輸入以下程序:

      J=imread('文件名.擴(kuò)展名');X1=imresize(J,2);%對圖像進(jìn)行縮放 figure,imshow(J)結(jié)果如圖

      (2)imcrop函數(shù)實(shí)現(xiàn)圖像的剪切。輸入以下程序: I=imread('***');I2=imcrop(I);%對圖像進(jìn)行剪切 subplot(填充),imshow(填充);subplot(填充),imshow(填充);如圖:

      圖像變換

      (1)fft2函數(shù)和ifft2函數(shù)分別是計(jì)算二維的FFT和反變換。輸入以下程序: f=zeros(100,100);f(20:70,40:60)=1;imshow(f);F=fft2(f);% 計(jì)算二維的FFT F2=log(abs(F));%對幅值取對數(shù) imshow(F2),colorbar

      (2)dct2函數(shù)采用基于FFT的算法,用于實(shí)現(xiàn)較大輸入矩陣的離散余弦變換。與之對應(yīng),idct2函數(shù)實(shí)現(xiàn)圖像的二維逆離散余弦變換 輸入以下程序: RGB=imread('***');I=rgb2gray(RGB);J=dct2(I);% 對I進(jìn)行離散余弦變換 imshow(log(abs(J))),colorbar J(abs(J)<10)=0;K=idct2(J);% 圖像的二維逆離散余弦變換 figure,imshow(I);figure,imshow(K,[0,255])得到如圖:

      (3)edge函數(shù)用于提取圖像的邊緣。輸入以下程序:

      RGB=imread('drum.bmp');I=rgb2gray(RGB);BW=edge(I);% 提取圖像的邊緣 imshow(I),figure,imshow(BW);得到圖

      圖像增強(qiáng)、分割和編碼

      (1)imhist函數(shù)產(chǎn)生圖像的直方圖。A=imread('drum.bmp');%讀入圖像

      B=rgb2gray(A);%把RGB圖像轉(zhuǎn)化成灰度圖像 imshow(B);%顯示灰度圖像

      imhist(B)%顯示灰度圖像的直方圖 得到圖

      (2)histeq函數(shù)用于對圖像的直方圖均衡化。接上面程序:

      C=histeq(B);%對圖像B進(jìn)行均衡化 imshow(C);%顯示圖像

      imhist(C);%得到均衡化后的灰度直方圖 得到如圖

      filter2函數(shù)實(shí)現(xiàn)均值濾波。輸入以下程序:

      a=imread('noise.drum.jpg');I=rgb2gray(a);imshow(I);K1=filter2(fspecial('average',3),I)/255;% 3?3的均值濾波 K2=補(bǔ)充;

      % 5?5的均值濾波 K3=補(bǔ)充;

      % 7?7的均值濾波 figure,imshow(K1);figure,imshow(K2);figure,imshow(K3);得到圖

      (5)medfilt2函數(shù)實(shí)現(xiàn)中值濾波。輸入以下程序:

      自查函數(shù)如何使用,并編程: 結(jié)果如圖:

      練習(xí)三

      圖像采樣及圖像類型轉(zhuǎn)換

      一、練習(xí)目的

      1、熟悉并掌握MATLAB圖像處理工具箱的使用;

      2、試對自選圖像分別進(jìn)行4和16倍剪采樣,查看其剪采樣效果

      3、將所給圖,轉(zhuǎn)換成256級灰度圖像,8級灰度圖像和2值圖像

      二、練習(xí)環(huán)境

      MATLAB 6.5或以上版本、WIN XP或以上計(jì)算機(jī)

      三、練習(xí)內(nèi)容

      使用MATLAB,對圖像進(jìn)行減采樣。

      a = imread('***.JPG');b = rgb2gray(a);[wid,hei]=size(b);%4倍減抽樣

      quartimg = zeros(wid/2+1,hei/2+1);i1 = 1;j1 = 1;for i=1:2:wid

      for j=1:2:hei

      quartimg(i1,j1)= b(i,j);

      j1 = j1 + 1;

      end i1 = i1 + 1;j1 = 1;end figure

      imshow(uint8(quartimg))練習(xí)結(jié)果如圖

      %16倍減抽樣

      編程并運(yùn)行顯示圖像結(jié)果:

      圖像類型

      1、練習(xí)內(nèi)容

      試將自選圖,轉(zhuǎn)換成256級灰度圖像,8級灰度圖像和2值圖像

      2、練習(xí)方法及程序

      使用MATLAB,進(jìn)行圖像類型變換。

      a = imread('***.jpg');b = rgb2gray(a);

      figure imshow(b)[wid,hei]=size(b);img8 = zeros(wid,hei);img2 = zeros(wid,hei);for i=1:wid

      for j=1:hei

      img8(i,j)= floor(b(i,j)/32);%得到8級灰度圖像

      end end figure

      imshow(uint8(img8),[0,7])for i=1:wid

      for j=1:hei

      補(bǔ)充;end end figure

      imshow(uint8(img8),[0,2])%得到2值圖像

      練習(xí)結(jié)果如圖

      練習(xí)四

      數(shù)字圖像的空間域處理

      一、練習(xí)目的

      1、熟悉并掌握MATLAB圖像處理工具箱的使用;

      2、熟悉圖像相加的方法及效果

      3、熟悉圖像灰度擴(kuò)展的方法及效果

      4、熟悉圖像縮放、旋轉(zhuǎn)的方法及效果

      二、練習(xí)環(huán)境

      MATLAB 6.5或以上版本、WIN XP或以上計(jì)算機(jī)

      三、練習(xí)內(nèi)容 Part 1(1)選擇一幅圖像***.jpg,設(shè)置輸入輸出變換的灰度級范圍,a=0.3, b=0.6, c=0.1, d=0.9;

      (2)設(shè)置非線性擴(kuò)展函數(shù)的參數(shù)c=2;

      (3)采用灰度倒置變換函數(shù)s=255-r進(jìn)行圖像變換;

      (4)設(shè)置二值化圖像的閾值,分別為level=0.4,level=0.7參考程序如下: I=imread('***.jpg');figure;subplot(1,3,1);imshow(I);title('原圖');J=imadjust(I,[0.3;0.6],[0.1;0.9]);%設(shè)置灰度變換的范圍 subplot(1,3,2);imshow(J);title('線性擴(kuò)展');I1=double(I);%將圖像轉(zhuǎn)換為double類型 I2=I1/255;%歸一化此圖像 C=2;K=C*log(1+I2);%求圖像的對數(shù)變換 subplot(1,3,3);imshow(K);title('非線性擴(kuò)展');M=255-I;%將此圖像取反 figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);%將此圖像二值化,閾值為0.4 N2=im2bw(I,0.7);%將此圖像二值化,閾值為0.7 subplot(1,3,2);imshow(N1);title('二值化閾值0.4');subplot(1,3,3);imshow(N2);title('二值化閾值0.7');練習(xí)結(jié)果與分析

      (1)練習(xí)結(jié)果如圖3.7所示。

      Part 2 讀取一幅圖片,如***.jpg,設(shè)置圖像旋轉(zhuǎn)的角度分別為450和900,采用圖形旋轉(zhuǎn)函數(shù)imrotate對圖像進(jìn)行旋轉(zhuǎn)。程序如下,結(jié)果如圖3.10。

      I=imread('i_lena.jpg');J=imrotate(I,45);%圖像進(jìn)行逆時(shí)針旋轉(zhuǎn),默認(rèn)采用最近鄰法進(jìn)行插值處理 K=imrotate(I,90);%默認(rèn)旋轉(zhuǎn)出界的部分不被截出 subplot(1,3,1);imshow(I);subplot(1,3,2);imshow(J);subplot(1,3,3);imshow(K);練習(xí)結(jié)果與分析

      (1)練習(xí)結(jié)果如圖3.10所示。

      練習(xí)五 數(shù)字圖像的頻域處理

      一、練習(xí)目的

      1、熟悉并掌握MATLAB工具的使用;

      2、實(shí)現(xiàn)圖像離散傅里葉變換并觀察效果

      3、實(shí)現(xiàn)圖像離散余弦變換并觀察效果

      二、練習(xí)環(huán)境

      Windows操作系統(tǒng) Matlab 6.5或以上應(yīng)用軟件

      三、練習(xí)內(nèi)容 Part 1 選取一幅圖像,進(jìn)行離散傅里葉變換,再對其分別進(jìn)行X軸與Y軸上的平移,得其離散傅里葉變換,觀察三幅結(jié)果圖。

      I=imread('1.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI);%求離散傅里葉頻譜

      %對原始圖像進(jìn)行二維傅里葉變換,并將其坐標(biāo)原點(diǎn)移到頻譜圖中央位置

      RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;

      figure(2)imshow(real(a));練習(xí)結(jié)果與分析

      Part 2 選取一幅圖像,進(jìn)行離散傅里葉變換,再對其進(jìn)行一定角度的旋轉(zhuǎn),進(jìn)行離散傅里葉變換。

      %構(gòu)造原始圖像

      I = zeros(256,256);

      I(88:168,124:132)= 1;%圖像范圍是256*256,前一值是縱向比,后一值是橫向比 imshow(I)

      %求原始圖像的傅里葉頻譜

      J = fft2(I);F = abs(J);J1 = fftshift(F);figure imshow(J1,[5 50])

      %對原始圖像進(jìn)行旋轉(zhuǎn)

      J = imrotate(I,90,'bilinear','crop');figure imshow(J)%求旋轉(zhuǎn)后圖像的傅里葉頻譜

      J1 = fft2(J);F = abs(J1);J2 = fftshift(F);figure imshow(J2,[5 50])練習(xí)結(jié)果與分析

      1)練習(xí)結(jié)果如圖4.4所示.Part 3 選取一幅圖像,進(jìn)行離散余弦變換,并對其進(jìn)行離散余弦反變換,觀察其結(jié)果。

      %對***.jpg文件計(jì)算二維DCT變換 RGB = imread('***.jpg ');figure(1)imshow(RGB)I = rgb2gray(RGB);%真彩色圖像轉(zhuǎn)換成灰度圖像 J = dct2(I);%計(jì)算二維DCT變換 figure(2)imshow(log(abs(J)),[])%圖像大部分能量集中在上左角處 figure(3);J(abs(J)< 10)= 0;%把變換矩陣中小于10的值置換為0,然后用idct2重構(gòu)圖像 K = idct2(J)/255;imshow(K)練習(xí)結(jié)果與分析

      第五篇:數(shù)字圖像處理學(xué)習(xí)報(bào)告

      數(shù)字圖像處理學(xué)習(xí)報(bào)告

      在這一學(xué)期,我選修了《數(shù)字圖像處理基礎(chǔ)》這門課程,同時(shí),老師還講授了一些視頻處理的知識(shí)。在這里,梳理一下這學(xué)期學(xué)到的知識(shí),并提出一些我對這門課程的建議。

      圖像處理是指對圖像信息進(jìn)行加工,從而滿足人類的心理、視覺或者應(yīng)用的需求的一種行為。圖像處理方法一般有數(shù)字法和光學(xué)法兩種,其中數(shù)字法的優(yōu)勢很明顯,已經(jīng)被應(yīng)用到了很多領(lǐng)域中,相信隨著科學(xué)技術(shù)的發(fā)展,其應(yīng)用空間將會(huì)更加廣泛。數(shù)字圖像處理又稱為計(jì)算機(jī)圖像處理,它是指將圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并利用計(jì)算機(jī)對其進(jìn)行處理的過程.數(shù)字圖像處理是從20世紀(jì)60年代以來隨著計(jì)算機(jī)技術(shù)和VLSL的發(fā)展而產(chǎn)生、發(fā)展和不斷成熟起來的一個(gè)新興技術(shù)領(lǐng)域。數(shù)字圖像處理技術(shù)其實(shí)就是利用各種數(shù)字硬件與計(jì)算機(jī),對圖像信息通過轉(zhuǎn)換而得到的電信號(hào)進(jìn)行相應(yīng)的數(shù)學(xué)運(yùn)算,例如圖像去噪、圖像分割、提取特征、圖像增強(qiáng)、圖像復(fù)原等,以便提高圖像的實(shí)用性。其特點(diǎn)是處理精度比較高,并且能夠?qū)μ幚碥浖M(jìn)行改進(jìn)來優(yōu)化處理效果,操作比較方便,但是由于數(shù)字圖像需要處理的數(shù)據(jù)量一般很大,因此處理速度有待提高。目前,隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的運(yùn)算速度得到了很大程度的提高。在短短的歷史中,它卻廣泛應(yīng)用于幾乎所有與成像有關(guān)的領(lǐng)域,在理論上和實(shí)際應(yīng)用上都取得了巨大的成就。

      1.數(shù)字圖像處理需用到的關(guān)鍵技術(shù)

      由于數(shù)字圖像處理的方便性和靈活性,因此數(shù)字圖像處理技術(shù)已經(jīng)成為了圖像處理領(lǐng)域中的主流。數(shù)字圖像處理技術(shù)主要涉及到的關(guān)鍵技術(shù)有:圖像的采集與數(shù)字化、圖像的編碼、圖像的增強(qiáng)、圖像恢復(fù)、圖像分割、圖像分析等。

      圖像的采集與數(shù)字化:就是通過量化和取樣將一個(gè)自然圖像轉(zhuǎn)換為計(jì)算機(jī)能夠處理的數(shù)字形式。

      圖像編碼:圖像編碼的目的主要是來壓縮圖像的信息量,以便能夠滿足存儲(chǔ)和傳輸?shù)囊?/p>

      求。

      圖像的增強(qiáng):圖像的增強(qiáng)其主要目的是使圖像變得清晰或者將其變換為機(jī)器能夠很容易

      分析的形式,圖像增強(qiáng)方法一般有:直方圖處理、灰度等級、偽彩色處理、邊緣銳化、干擾抵制。

      圖像的恢復(fù):圖像恢復(fù)的目的是減少或除去在獲得圖像的過程中因?yàn)楦鞣N原因而產(chǎn)生的

      退化,可能是由于光學(xué)系統(tǒng)的離焦或像差、被攝物與攝像系統(tǒng)兩者之間的相對運(yùn)動(dòng)、光學(xué)或電子系統(tǒng)的噪聲與介于被攝像物跟攝像系統(tǒng)之間的大氣湍流等等。

      圖像的分割:圖像分割是將圖像劃分為一些互相不重疊的區(qū)域,其中每一個(gè)區(qū)域都是像素的一個(gè)連續(xù)集,通常采用區(qū)域法或者尋求區(qū)域邊界的境界法。

      圖像分析:圖像分析是指從圖像中抽取某些有用的信息、數(shù)據(jù)或度量,其目的主要是想得到某種數(shù)值結(jié)果。圖像分析的內(nèi)容跟人工智能、模式識(shí)別的研究領(lǐng)域有一定的交叉。2.數(shù)字圖像處理的特點(diǎn)

      數(shù)字圖像處理的特點(diǎn)主要表現(xiàn)在以下幾個(gè)方面:

      1)數(shù)字圖像處理的信息大多是二維信息,處理信息量很大。因此對計(jì)算機(jī)的計(jì)算速度、存

      儲(chǔ)容量等要求較高。2)數(shù)字圖像處理占用的頻帶較寬。與語言信息相比,占用的頻帶要大幾個(gè)數(shù)量級。所以在成像、傳輸、存儲(chǔ)、處理、顯示等各個(gè)環(huán)節(jié)的實(shí)現(xiàn)上技術(shù)難度較大,成本亦高。這就對頻

      帶壓縮技術(shù)提出了更高的要求。

      3)數(shù)字圖像中各個(gè)像素不是獨(dú)立的,其相關(guān)性大。在圖像畫面上,經(jīng)常有很多像素有相同

      或接近的灰度。所以,圖像處理中信息壓縮的潛力很大。

      4)數(shù)字圖像處理后的圖像受人的因素影響較大,因?yàn)閳D像一般是給人觀察和評價(jià)的。

      3.數(shù)字圖像處理的優(yōu)點(diǎn)

      數(shù)字圖像處理的優(yōu)點(diǎn)主要表現(xiàn)在4個(gè)方面。

      1)再現(xiàn)性好。數(shù)字圖像處理與模擬圖像處理的根本不同在于它不會(huì)因圖像的存儲(chǔ)、傳輸或

      復(fù)制等一系列變換操作而導(dǎo)致圖像質(zhì)量的退化。只要圖像在數(shù)字化時(shí)準(zhǔn)確地表現(xiàn)了原稿,那么數(shù)字圖像處理過程始終能保持圖像的再現(xiàn)。

      2)處理精度高。將一幅模擬圖像數(shù)字化為任意大小的二維數(shù)組,主要取決于圖像數(shù)字化設(shè)

      備的能力.3)適用面寬。圖像可以來自多種信息源,它們可以是可見光圖像,也可以是不可見的波譜圖像。只要針對不同的圖像信息源,采取相應(yīng)的圖像信息采集措施,圖像的數(shù)字處理方法 適用于任何一種圖像。

      4)靈活性高。圖像處理大體上可分為圖像的像質(zhì)改善、圖像分析和圖像重建三大部分,每

      一部分均包含豐富的內(nèi)容。

      4.數(shù)字圖像處理的應(yīng)用領(lǐng)域

      圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應(yīng)用領(lǐng)域必然涉及到人類生

      活和工作的方方面面,隨著人類活動(dòng)范圍的不斷擴(kuò)大,圖像處理的應(yīng)用領(lǐng)域也將隨之不斷擴(kuò) 大。

      航天和航空技術(shù):在飛機(jī)遙感和衛(wèi)星遙感技術(shù)中用配備有高級計(jì)算機(jī)的圖像處理系統(tǒng)來判讀分析,既節(jié)省人力又加快了速度,還可以從照片中提取人工所不能發(fā)現(xiàn)的大量有用情報(bào)。生物醫(yī)學(xué)工程:除了CT技術(shù)之外,還有對醫(yī)用顯微圖像的處理分析,如紅細(xì)胞、白細(xì)胞分類,染色體分析,癌細(xì)胞識(shí)別等。

      通信工程:當(dāng)前通信的主要發(fā)展方向是聲音、文字、圖像和數(shù)據(jù)結(jié)合的多媒體通信。在一定意義上講,編碼壓縮是這些技術(shù)成敗的關(guān)鍵。除了已應(yīng)用較廣泛 的熵編碼、DPCM編碼、變換編碼外,目前國內(nèi)外正在大力開發(fā)研究新的編碼方法,如分行編碼、自適應(yīng)網(wǎng)絡(luò)編碼、小波變換圖像壓縮編碼等。

      工業(yè)和工程領(lǐng)域:圖像處理技術(shù)有著廣泛的應(yīng)用,如自動(dòng)裝配線中檢測零件的質(zhì)量并對零件進(jìn)行分類,印刷電路板疵病檢查,彈性力學(xué)照片的應(yīng)力分析,流體力學(xué)圖片的阻力和升力分析,郵政信件的自動(dòng)分揀,在一些有毒、放射性環(huán)境內(nèi)識(shí)別工件及物體的形狀和排列狀態(tài),先進(jìn)的設(shè)計(jì)和制造技術(shù)中采用工業(yè)視覺等等。

      軍事方面:圖像處理和識(shí)別主要用于導(dǎo)彈的精確末制導(dǎo) 各種偵察照片的判讀,具有圖像傳輸、存儲(chǔ)和顯示的軍事自動(dòng)化指揮系統(tǒng),飛機(jī)、坦克和軍艦?zāi)M訓(xùn)練系統(tǒng)等;公安業(yè)務(wù)圖片的判讀分析,指紋識(shí)別,人臉鑒別,不完整圖片的復(fù)原,以及交通監(jiān)控、事故分析等。

      文化藝術(shù):電視畫面的數(shù)字編輯、動(dòng)畫的制作、電子圖像游戲、紡織工藝品設(shè)計(jì)、服裝設(shè)計(jì)與制作、發(fā)型設(shè)計(jì)、文物資料照片的復(fù)制和修復(fù)、運(yùn)動(dòng)員動(dòng)作分析和評分等等。

      視頻和多媒體系統(tǒng):電視制作系統(tǒng)廣泛使用的圖像處理、變換、合成,多媒體系統(tǒng)中靜止圖像和動(dòng)態(tài)圖像的采集、壓縮、處理、存貯和傳輸?shù)取?/p>

      電子商務(wù):圖像處理技術(shù)在電子商務(wù)中也大有可為,如身份認(rèn)證、產(chǎn)品防偽、水印技術(shù)等。

      在這門課程的最后,代課老師給我們講授了數(shù)字視頻處理,讓我們了解到數(shù)字視頻就是以數(shù)字形式記錄的視頻,和模擬視頻相對的。數(shù)字視頻有不同的產(chǎn)生方式,存儲(chǔ)方式和播出方式。比如通過數(shù)字?jǐn)z像機(jī)直接產(chǎn)生數(shù)字視頻信號(hào),存儲(chǔ)在數(shù)字帶,P2卡,藍(lán)光盤或者磁盤上,從而得到不同格式的數(shù)字視頻。然后通過PC,特定的播放器等播放出來。了解了數(shù)字視頻發(fā)展過程和視頻壓縮的概念和分類等。

      我們這門課程主要是上理論課,其中有很復(fù)雜的數(shù)學(xué)原理,專業(yè)術(shù)語多,基礎(chǔ)知識(shí)要求高,理解起來有些困難。當(dāng)初選擇這門課是希望能有一些具體軟件的教學(xué)。就我了解,視頻處理的軟件有MAYA、Premiere、繪聲繪影、windows自帶的MOVE MAKER;處理數(shù)字圖像的軟件主要有matlaB、photoshop、ImageJ(java圖像處理程序)。其中,matlaB和PS 很具有教學(xué)性,這兩個(gè)軟件也運(yùn)用的很廣。

      MATLAB全稱是MatrixLaboratory(矩陣實(shí)驗(yàn)室),一開始它是一種專門用于矩陣數(shù)值計(jì)算的軟件,從這一點(diǎn)上也可以看出,它在矩陣運(yùn)算上有自己獨(dú)特的特點(diǎn)。實(shí)際運(yùn)用MATLAB中的絕大多數(shù)的運(yùn)算都是通過矩陣這一形式進(jìn)行的,這一特點(diǎn)決定了MATLAB在處理數(shù)字圖像上的獨(dú)特優(yōu)勢。理論上講,圖像是一種二維的連續(xù)函數(shù),然而計(jì)算機(jī)對圖像進(jìn)行數(shù)字處理時(shí),首先必須對其在空間和亮度上進(jìn)行數(shù)字化,這就是圖像的采樣和量化的過程。

      Photoshop是Adobe公司旗下最為出名的圖像處理軟件之一,集圖像掃描、編輯修改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出于一體的圖形圖像處理軟件,深受廣大平面設(shè)計(jì)人員和電腦美術(shù)愛好者的喜愛。

      如果能理論和實(shí)踐相結(jié)合,相信我們會(huì)把數(shù)字圖像處理理解的跟透徹,同時(shí)也鍛煉了大家的動(dòng)手能力。希望老師能多開設(shè)實(shí)際動(dòng)手的課程。

      下載數(shù)字圖像處理課設(shè)報(bào)告word格式文檔
      下載數(shù)字圖像處理課設(shè)報(bào)告.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        數(shù)字信號(hào)處理課設(shè)

        信息科學(xué)與工程學(xué)院 數(shù)字信號(hào)處理課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告 課題名稱: 簡單信號(hào)濾波演示系統(tǒng) 學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級: 指導(dǎo)老師: 實(shí)驗(yàn)時(shí)間: 2014.10.8 目 錄 第一章概述...............

        現(xiàn)代信號(hào)處理課設(shè)報(bào)告

        中南大學(xué) 課程設(shè)計(jì)報(bào)告題 目 現(xiàn)代信號(hào)處理課程設(shè)計(jì) 學(xué)生姓名 萬義武 指導(dǎo)教師 周揚(yáng)、支國明 學(xué) 院 信息科學(xué)與工程學(xué)院 學(xué) 號(hào) 0909118219 專業(yè)班級 電子信息專業(yè)1102班 一、......

        《數(shù)字圖像處理》結(jié)課小論文

        2013-2014年第一學(xué)期《數(shù)字圖像處理》科目考查卷 專業(yè):通信工程 班 級: 任課教師:王新新 姓名: 學(xué) 號(hào): 成 績: 一 Deblurring Images Using the Wiener Filter ——使用維納濾波器......

        數(shù)字圖像處理讀書報(bào)告11

        數(shù)字圖像處理讀書報(bào)告11 ——圖像分割 ——錢增磊 前言:由于在圖像的應(yīng)用當(dāng)中,我們經(jīng)常要將感興趣的區(qū)域提取出來用來識(shí)別等其他用途,這就涉及到一個(gè)很關(guān)鍵的一個(gè)應(yīng)用,便是圖像......

        數(shù)字圖像處理期中作業(yè)報(bào)告

        西安科技大學(xué)通信學(xué)院 數(shù)字圖像處理實(shí)驗(yàn)報(bào)告 直 方 圖 均 衡 化 西安科技大學(xué)通信學(xué)院 題目:直方圖均衡化 一、實(shí)驗(yàn)?zāi)康?1. 通過實(shí)驗(yàn)理解直方圖均衡化的原理及步驟; 2. 編程實(shí)......

        數(shù)字圖像處理讀書筆記

        數(shù)字圖像處理讀書筆記 本學(xué)期的數(shù)字圖像處理課程已經(jīng)進(jìn)行了3周了,通過這3周的學(xué)習(xí)讓我對數(shù)字圖像處理有了一定的認(rèn)知和理解。數(shù)字圖像處理又稱為計(jì)算機(jī)圖像處理,它是指將圖像......

        數(shù)字圖像處理實(shí)驗(yàn)報(bào)告

        實(shí) 驗(yàn) 報(bào) 告 書 系部學(xué)生專業(yè)班實(shí)驗(yàn) 名稱姓名名稱 級時(shí)間:: : : : 實(shí)驗(yàn)一 直方圖均衡 一、實(shí)驗(yàn)?zāi)康?在學(xué)習(xí)圖像直方圖的概念、計(jì)算方法、性質(zhì)和相關(guān)應(yīng)用基礎(chǔ)上,生成、繪制圖像......

        數(shù)字圖像處理實(shí)驗(yàn)報(bào)告

        數(shù)字圖像處理 實(shí)驗(yàn)報(bào)告 目錄 1. 數(shù)字圖像處理簡介2. 實(shí)驗(yàn)?zāi)康?. 實(shí)驗(yàn)內(nèi)容4. 實(shí)驗(yàn)結(jié)果及代碼展示5. 算法綜述6. Matlab優(yōu)勢7. 總結(jié)8. 存在問題 一、 數(shù)字圖像處理簡介......