《計(jì)算機(jī)圖像處理》課程設(shè)計(jì)報(bào)告_第1頁
《計(jì)算機(jī)圖像處理》課程設(shè)計(jì)報(bào)告_第2頁
《計(jì)算機(jī)圖像處理》課程設(shè)計(jì)報(bào)告_第3頁
《計(jì)算機(jī)圖像處理》課程設(shè)計(jì)報(bào)告_第4頁
《計(jì)算機(jī)圖像處理》課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算機(jī)圖像處理課程設(shè)計(jì)報(bào)告題目 灰值圖像形態(tài)學(xué) 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班級(jí) 學(xué)號(hào) 姓名 指導(dǎo)教師簽名 華東理工大學(xué)信息學(xué)院計(jì)算機(jī)系2013年5月15日一. 課程設(shè)計(jì)題目灰值圖像形態(tài)學(xué)二. 日期2013.4.3-2013.5.8三. 環(huán)境(操作系統(tǒng),開發(fā)語言)操作系統(tǒng)是Windows開發(fā)語言是Visual C+ 語言四. 設(shè)計(jì)內(nèi)容(設(shè)計(jì)要求)(1) 開發(fā)一個(gè)基于Visual C+.NET 2003(或更高版本)MFC的圖像的形態(tài)學(xué)處理的程序,必須用CImage類作為圖像處理的對(duì)象。(2) 程序必須具備的功能:a) 可選擇文件名,讀入并顯示一張?jiān)紙D像文件。b) 在顯示

2、的原始圖像旁邊顯示至少二張不同的形態(tài)學(xué)處理后的圖像。五. 說明(1) 說明使用的二種圖像處理方法的名稱,并對(duì)這二種圖像處理方法的效果進(jìn)行比較 說明:兩種處理方法為:灰值形態(tài)學(xué)的腐蝕和灰值形態(tài)學(xué)的膨脹效果分析:l 灰值形態(tài)學(xué)腐蝕:就是把圖像區(qū)域的內(nèi)邊界點(diǎn)變成背景,是區(qū)域縮小一圈。腐蝕可以消除目標(biāo)圖像所有邊界點(diǎn)以及邊界上的突出部分;分離兩個(gè)目標(biāo)之間的細(xì)小連通;腐蝕對(duì)于從一幅圖像中去除一些小而無意義的目標(biāo)是很有用的。算法中關(guān)鍵點(diǎn)是:g(j,k) = min f(j,k), f(j,k+1), f(j-1,k+1), f(j+1,k+1)l 灰值形態(tài)學(xué)膨脹 :就是將區(qū)域的外邊界變成對(duì)象點(diǎn),使區(qū)域擴(kuò)大一

3、圈。膨脹運(yùn)算把圖像周圍的點(diǎn)合并進(jìn)圖像;連通兩個(gè)距離比較小的圖像;在連接圖像中的斷續(xù)點(diǎn)和填補(bǔ)圖像中的空洞是非常有用的。算法關(guān)鍵點(diǎn)是:g(j,k) = max f(j,k), f(j,k+1), f(j-1,k+1), f(j+1,k+1) (2) 處理前后的截圖處理效果一:處理效果二:(3) 程序功能實(shí)現(xiàn)的關(guān)鍵函數(shù)及關(guān)鍵源代碼關(guān)鍵函數(shù)和關(guān)鍵源代碼如下:OnDraw( ):將工作畫布WorkCanvas中的圖像傳送到屏幕畫布CDC中void CImageView:OnDraw(CDC* pDC) CImageDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);

4、if (!pDoc)return;int nWidth,nHeight;if(!WorkCanvas.IsNull() nWidth=WorkCanvas.GetWidth(); nHeight=WorkCanvas.GetHeight(); WorkCanvas.BitBlt(*pDC,0,0,nWidth,nHeight,0,0,SRCCOPY); /用WorkCanvus的Bitblt()函數(shù)將WorkCanvus中的圖象數(shù)據(jù)傳送到畫布(例如CClientDC或pDC)上 CopyImage( ):CImage類對(duì)象之間的復(fù)制,工作畫布復(fù)制到副本畫布void CopyImage(CIma

5、ge *pNewImage,CImage *pOldImage)CDC *pDC,*pNewDC;intnWidth,nHeight,nBitsPerPixel;nWidth=pOldImage->GetWidth();nHeight=pOldImage->GetHeight();nBitsPerPixel=pOldImage->GetBPP();if(!pNewImage->IsNull()/ 目標(biāo)位圖非空 pNewImage->Destroy();/ 刪除目標(biāo)位圖pNewImage->Create(nWidth,nHeight,nBitsPerPixel

6、,0);/建立CImage類對(duì)象新位圖CopyColorTables(pNewImage,pOldImage);/復(fù)制調(diào)色板pDC=CDC:FromHandle(pOldImage->GetDC();/ 建立源位圖CDC pNewDC=CDC:FromHandle(pNewImage->GetDC();/ 建立目標(biāo)位圖CDC pNewDC->BitBlt(0,0,nWidth,nHeight,pDC,0,0,SRCCOPY);/復(fù)制像素?cái)?shù)據(jù) pOldImage->ReleaseDC();/ 釋放CDC指針 pNewImage->ReleaseDC();IndexT

7、oGreyImage( ):索引圖像變灰階圖像void IndexToGreyImage(CImage *pNewImage,CImage *pOldImage) RGBQUADColorTabs256;BYTEcOldPixel,cNewPixel;inti,y,x,nOldWidth,nOldHeight,nColorTableEntries;intRGBToGrey256;if(pOldImage->GetBPP()=8) nOldWidth=pOldImage->GetWidth();nOldHeight=pOldImage->GetHeight();/建立新圖像if

8、 (!pNewImage->IsNull() pNewImage->Destroy(); /如果圖像pNewImage非空,則清除原有圖像(原位圖) pNewImage->Create(nOldWidth,nOldHeight,8,0);/建立新圖像/設(shè)置新圖像的灰階調(diào)色板for(i=0;i<256;i+)ColorTabsi.rgbBlue=ColorTabsi.rgbGreen=ColorTabsi.rgbRed=i;pNewImage->SetColorTable(0,256,ColorTabs);/設(shè)置新圖像調(diào)色板/計(jì)算原圖像調(diào)色板的RGB色彩數(shù)據(jù)與灰色數(shù)

9、據(jù)關(guān)系nColorTableEntries=pOldImage->GetMaxColorTableEntries();pOldImage->GetColorTable(0,nColorTableEntries,ColorTabs);/取原索引圖像調(diào)色板for(i=0;i<nColorTableEntries;i+)/將原索引圖像的調(diào)色板每項(xiàng)的RGB三種顏色計(jì)算成灰色數(shù)據(jù)RGBToGreyi=(int)(0.11*ColorTabsi.rgbBlue+0.59*ColorTabsi.rgbGreen+0.30*ColorTabsi.rgbRed);/修改原圖像所有像素,將原索引

10、圖像每個(gè)對(duì)應(yīng)RGB的數(shù)據(jù)修改為對(duì)應(yīng)灰階圖像的數(shù)據(jù)for(y=0;y<nOldHeight;y+)/逐行進(jìn)行處理 for(x=0;x<nOldWidth;x+)/逐列進(jìn)行處理 cOldPixel=(BYTE)GetPixelValue(pOldImage,x,y);/將原索引圖像的像素按映射關(guān)系表變成灰階圖像中的像素cNewPixel=RGBToGreycOldPixel;SetPixelValueInIndexImage(pNewImage,x,y,cNewPixel);/寫新的灰階圖像中的像素值處理方法一:灰值形態(tài)學(xué)的腐蝕處理void GreyErosion(CImage *pN

11、ewImage,CImage *pOldImage) inty,x,i,j,nWidth,nHeight;BYTEcMin,cPixelValue;CopyImage(pNewImage,pOldImage);/CImage類對(duì)象之間的復(fù)制nWidth=pOldImage->GetWidth(); nHeight=pOldImage->GetHeight(); for(y=1;y<nHeight-1;y+)/逐行進(jìn)行處理for (x=1;x<nWidth-1;x+)/逐列進(jìn)行處理 cMin=255;for (i=-1;i<2;i+) for (j=-1;j<

12、2;j+) cPixelValue=(BYTE)GetPixelValue(pOldImage,x+j,y+i);if (cPixelValue<cMin) cMin=cPixelValue;/尋找鄰域極小(黑)值SetPixelValueInIndexImage(pNewImage,x,y,cMin);/灰值形態(tài)學(xué)膨脹處理為鄰域極小(黑)值void CImageView:OnGreyErosion() CClientDC dc(this);/屏幕畫布CImageImage;int nStartX,nStartY,nCanvasDrawWidth;if(!WorkCanvas.IsNul

13、l()/如果工作畫布WorkCanvas非空 SetFlagsToFalse();/清除所有標(biāo)志/清除窗口CRectrectWindowSize;GetClientRect(&rectWindowSize); /取窗口矩形坐標(biāo)ClearWindow(&dc,rectWindowSize);/清窗口/顯示原始工作畫布WorkCanvas圖像nStartX=0;nStartY=0;nCanvasDrawWidth=DrawCanvas(&WorkCanvas,&dc,nStartX,nStartY);/將工作畫布WorkCanvas圖像轉(zhuǎn)化成灰值圖像并放在Image

14、中IndexToGreyImage(&Image,&WorkCanvas);/對(duì)Image圖像進(jìn)行灰值形態(tài)學(xué)的腐蝕處理,處理結(jié)果放在SaveCanvas中GreyErosion(&SaveCanvas,&Image);/顯示處理后的SaveCanvas圖像nStartX+=nCanvasDrawWidth+10;DrawCanvas(&SaveCanvas,&dc,nStartX,nStartY);處理方法二:灰值形態(tài)的膨脹處理void GreyDilation(CImage *pNewImage,CImage *pOldImage) inty,

15、x,i,j,nWidth,nHeight;BYTEcMax,cPixelValue;CopyImage(pNewImage,pOldImage);/CImage類對(duì)象之間的復(fù)制nWidth=pOldImage->GetWidth();nHeight=pOldImage->GetHeight();for(y=1;y<nHeight-1;y+)/逐行進(jìn)行處理for (x=1;x<nWidth-1;x+)/逐列進(jìn)行處理 cMax=0;for (i=-1;i<2;i+) for (j=-1;j<2;j+) cPixelValue=(BYTE)GetPixelValu

16、e(pOldImage,x+j,y+i);if (cPixelValue>cMax) cMax=cPixelValue;/尋找鄰域極大(白)值SetPixelValueInIndexImage(pNewImage,x,y,cMax);/灰值形態(tài)學(xué)膨脹處理為鄰域極大(白)值void CImageView:OnGreyDilation()CClientDC dc(this);CImageImage;int nStartX,nStartY,nCanvasDrawWidth;if(!WorkCanvas.IsNull()/如果工作畫布WorkCanvas非空 /顯示原始工作畫布WorkCanvas圖像nStartX=0;nStartY=0;nCanvasDrawWidth=DrawCanvas(&WorkCanvas,&dc,nStartX,nStartY);/將工作畫布WorkCan

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論