




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)字圖像處理集中實(shí)習(xí)指導(dǎo)書本文基于VC+6.0開發(fā)環(huán)境,介紹數(shù)字圖像處理的基本操作和處理。一、工程的建立1 運(yùn)行 Microsoft Visual C+ 程序,進(jìn)入 VC+主界面。2、 單擊“ File ”菜單,選擇“ NeW'來新建,在出現(xiàn)的對(duì)話框中選擇Project,并選擇“ MFC AppWizardexe ”,表示建立一個(gè)MFC應(yīng)用向?qū)еС值墓こ涛募?。然后在右邊輸入工程名稱(本文為“ B”為例)和該工程存儲(chǔ)地址,工程名要求為4位數(shù)字,如某同學(xué)是 3班,學(xué)號(hào)為4,則工程命名為“ 0304”,輸入完畢后單擊“ 0K'。3、下面的六個(gè)步驟中,前五個(gè)選擇默認(rèn),第六個(gè)步驟中,將視
2、圖類的基類更改為 CSrollView 類,然后點(diǎn)擊完成。通過這些步驟就可以建立一個(gè)Win dows風(fēng)格的工程,這個(gè)工程也是今后進(jìn)行VC圖像處理的基礎(chǔ)。點(diǎn)擊編譯、連接,沒有錯(cuò)誤和警告,然后運(yùn)行,會(huì)出現(xiàn)一個(gè)應(yīng)用程序界面,界面 具有文件、編輯、查看、窗口和幫助這些菜單,點(diǎn)擊其子菜單,發(fā)現(xiàn)程序什么也沒執(zhí)行,這 需要我們?yōu)樗尤胂嚓P(guān)的功能。二、加載位圖類1將已經(jīng)寫好的位圖類文件Dib.h和Dib.cpp拷貝到工程文件夾的根目錄下,點(diǎn)擊主菜單Project,選擇Add to Project 下的Files,然后選擇位圖類的頭文件和cpp文件,這時(shí),該視圖類就加到工程中了,在左邊項(xiàng)目工作區(qū)的 ClassV
3、iew中就可以看到該類的列表。展開每個(gè)類,可看到每個(gè)類的變量和函數(shù)。2、編譯、連接無錯(cuò)誤后,可以運(yùn)行。三、讀寫位圖1在視圖類的cpp文件中包含dib.h頭文件,并生成一個(gè)CDib對(duì)象:CDib dib;2、 在視圖類頭文件的構(gòu)造函數(shù)中加入3個(gè)成員變量如下:BYTE *m_pBitmap;DWORD m_dwHeight, m_dwWidth;WORD m_flag;分別表示數(shù)據(jù)指針、圖像的高度、圖像的寬度和圖像的類型。在析構(gòu)函數(shù)中加入 if (m_pBitmap) delete m_pBitmap;3、 添加“打開”消息響應(yīng)函數(shù)??捎谩癈trl+W ”打開類向?qū)?duì)話框,選擇視圖類中的打開 文件
4、ID號(hào),選擇COMMAN命令類型,點(diǎn)擊“ Add Function ”按鈕,選擇默認(rèn)的函數(shù)名,進(jìn) 入該函數(shù),鍵入如下代碼行,進(jìn)行讀圖像:CStri ng strFileName;staticchar szFilter="BMP 文件(*.bmp)|*.bmp;CFileDialog dlg(TRUE, "bmp", NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);if (dlg.DoModal()!=IDOK) return ;strFileName=dlg.GetPathName();(this -&
5、gt;GetDocument()->SetTitle(strFileName);if (!dib.LoadBmpFile(strFileName,m_pBitmap,m_dwHeight,m_dwWidth,m_flag)return ;Invalidate( true );4、在視圖類的 On Draw函數(shù)中加如下代碼顯示圖像:RECT rectDoc;GetClie ntRect(&rectDoc);CSize pageSize(rectDoc.right, rectDoc.bottom);CSize lin eSize(100,1);CSize docSize(0,0);R
6、ECT rect;GetClie ntRect(& rect);BYTE *pImageDisp = NULL;BITMAPINFO *pBmp Info = NULL;/設(shè)置在指定設(shè)備容中(顯卡存)的拉伸模式pDC->SetStretchBltMode(COLORONCOLOR);if (m_pBitmap)dib.Tra nsToBmp(m_dwHeight, m_dwWidth, m_pBitmap, pImageDisp, m_flag);dib.CreateBITMAPINFO(pBmpl nfo, m_dwHeight, m_dwWidth, m_flag);/拷貝存
7、數(shù)據(jù)到顯示器StretchDIBits(pDC->GetSafeHdc(),rect .left, rect.top,m_dwWidth, m_dwHeight,0,0,m_dwWidth, m_dwHeight,pImageDisp,pBmpI nfo,DIB_RGB_COLORS,SRCCOPY);docSize.cx = rectDoc.left + m_dwWidth;docSize.cy = rectDoc.top + m_dwHeight;SetScrollSizes(MM_TEXT,docSize,pageSize,li neSize);if (pImageDisp) de
8、lete pImageDisp;if (pBmpInfo) delete pBmpInfo;5、為視圖類添加“保存”消息響應(yīng)函數(shù),進(jìn)行文件存儲(chǔ)。添加的代碼如下:CStri ng strFileName;staticchar szFilter = "BMP文件(*.bmp)|*.bmp;CFileDialog dlg( false , "bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);if (dlg.DoModal() != IDOK) return ;strFileName = dlg.G
9、etPathName();if (!dib.WriteBmpFile(strFileName, m_pBitmap, m_dwHeight, m_dwWidth, m_flag)return ;6、 編譯、連接,運(yùn)行后,就可以進(jìn)行讀、顯示和存儲(chǔ)BMP圖像了。四、制作對(duì)話框1修改對(duì)話框的屬性。右擊對(duì)話框空白處,選擇屬性,修改對(duì)話框的ID和Caption。2、在項(xiàng)目工作區(qū)中選擇 Resource,右擊Dialog,選中Insert Dialog命令,這時(shí)系統(tǒng)就生成了一個(gè)對(duì)話框資源,上面有兩個(gè)按鈕。手工布置對(duì)話框:分別右擊兩個(gè)按鈕,選擇屬性,修改ID和Caption,改為“確定”和“取消”。3、添加
10、靜態(tài)文本。單擊空間工具欄上的靜態(tài)文本,放在對(duì)話框上,單擊右鍵,選擇屬性, 修改為“輸入閾值”。4、添加編輯框。在控件工具欄上選擇編輯框,放在對(duì)話框上,修改屬性。每個(gè)對(duì)話框與控件都有一個(gè)不同的ID。5、 增加對(duì)話框類。右擊對(duì)話框的標(biāo)題欄,選擇ClassWizard,出現(xiàn)增加新類的對(duì)話框,選擇創(chuàng)建一個(gè)新類 CYuzhi,單擊OK然后在Name中輸入新類的名字,基類為 CDialog,修改 該對(duì)話框的ID。這時(shí)在項(xiàng)目工作區(qū)的ClassView中可以看到一個(gè)新類 CYuzhi。6、 為CYuzhi類增加成員變量。 進(jìn)入類向?qū)?duì)話框,選擇Membervariables 標(biāo)簽,在CYuzhi類中選中編輯框
11、ID,單擊Add Variable按鈕,在對(duì)話框中輸入成員變量的名字,成員變量為整型值型,單擊 0K7、為對(duì)話框上的確定按鈕定義響應(yīng)函數(shù)。在Message Maps標(biāo)簽中,選擇對(duì)話框類,選擇IDOK,在 Message中選擇BK_CLICKED單擊 Add Function 按鈕,輸入響應(yīng)函數(shù)名字。五、制作菜單1加主菜單。點(diǎn)擊工程左下端項(xiàng)目工作區(qū)的ResourceView,雙擊Menu,雙擊IDR_BTYPE雙擊空白主菜單,在屬性對(duì)話框的Caption中輸入“空間域”。2、加子菜單。雙擊位圖操作下的空白菜單,建立“二值化”子菜單,分別為其設(shè)置ID (如可以為ID_BINARY)。菜單項(xiàng)目輸入完
12、畢后,可以編譯連接工程,發(fā)現(xiàn)建立的菜單是灰色的,不能使用。這是因?yàn)檫€沒有定義它們的功能。3、 添加菜單響應(yīng)函數(shù)。單擊VC+主菜單 View下的ClassWizard,單擊對(duì)話框中的 MessageMaps標(biāo)簽,選擇工程中的視圖類,選中直方圖ID_BINARY,選中Message中的COMMAND單擊Add Fun ction按鈕,在對(duì)話框中給出默認(rèn)的函數(shù)名On Bi nary,點(diǎn)擊OK。此函數(shù)就自動(dòng)加入到視圖類中了,單擊Edit Code,就進(jìn)入該函數(shù)的編輯界面。該函數(shù)位于視圖類。4、 在視圖類的頭文件頂部包含Yuzhi頭文件,在 OnBinary()函數(shù)中增加如下代碼:CYuzhi dlg;dlg.DoModal();UpdateData(TRUE);if (m_flag = 24)AfxMessageBox("只處理 8位圖像! ”);return ;BYTE *pData = new BYTEm_dwWidth*m_dwHeight;BYTE *pOld = pData;memcpy(pData, m_pBitmap, m_dwWidth*m_dwHeight);DWORD i,j;for (i=O;i<m_dwHeight;i+)for (j=O;j<m_dwWidth;j+)if (*pData >
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入理解教育領(lǐng)域中的大數(shù)據(jù)庫解析
- 從心理角度理解學(xué)生學(xué)習(xí)行為的驅(qū)動(dòng)力
- 教育心理學(xué)與在線課程學(xué)習(xí)成效的關(guān)系
- 小學(xué)班班通培訓(xùn)課件
- 智慧城市背景下綠色智能辦公樓的發(fā)展
- 教育政策在高校文化傳承中的作用
- 從新政策看未來學(xué)校教育模式的創(chuàng)新
- 大數(shù)據(jù)在學(xué)生個(gè)性化教學(xué)計(jì)劃制定中的作用
- 抖音商戶數(shù)據(jù)分析師直播數(shù)據(jù)看板制度
- 抖音商戶直播時(shí)段選擇依據(jù)制度
- 2023年3月26日安徽省中小學(xué)新任教師公開招聘《小學(xué)語文》試題及答案
- 小學(xué)一年級(jí)下冊(cè)數(shù)學(xué)口算題卡及口算天天練
- 特種設(shè)備事故應(yīng)急處置
- 高端SPA會(huì)所的內(nèi)外環(huán)境設(shè)計(jì)藝術(shù)與實(shí)踐
- 廣告牌的施工方案
- 《湍流中大尺度結(jié)構(gòu)對(duì)小尺度結(jié)構(gòu)的影響》
- 安徽省合肥市廬陽區(qū)南門小學(xué)-2024-2025年第一學(xué)期辦公室工作總結(jié)(層峰辟新天)【課件】
- DB31∕T 360-2020 住宅物業(yè)管理服務(wù)規(guī)范
- 基于多模態(tài)數(shù)據(jù)的智慧化平衡功能評(píng)估系統(tǒng)應(yīng)用研究
- 外研版(2024)七年級(jí)上冊(cè)單詞默寫
- 2024至2030年中國娛樂玩具行業(yè)投資前景及策略咨詢研究報(bào)告
評(píng)論
0/150
提交評(píng)論