資源描述:
《數(shù)字圖像處理VC++編程實(shí)現(xiàn).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、數(shù)字圖像處理VC++編程實(shí)現(xiàn)安秋南京農(nóng)業(yè)大學(xué)工學(xué)院編程實(shí)現(xiàn)方法VisualC++圖像處理編程MATLAB圖像處理編程基于開源庫OpenCV的圖像處理編程基于其他庫的圖像處理編程圖像處理的VC++編程VC++編程環(huán)境簡介圖像編程基礎(chǔ)圖像格式的理解BMP文件格式及讀寫程序范例微型圖像處理系統(tǒng)既包含硬件設(shè)備,也需要一定的軟件環(huán)境支持。目前,圖像處理系統(tǒng)平臺(tái)多為MicrosoftWindows或X-Windows,開發(fā)的主流工具為Microsoft公司的VC++。這是因?yàn)閂C++是一種具有高度綜合性能的軟件開發(fā)工具,用它開發(fā)出來的程序有著運(yùn)行速度快、可移植能力強(qiáng)等優(yōu)點(diǎn)。本書中
2、實(shí)例也是在Windows平臺(tái)下,用VC++6.0實(shí)現(xiàn)的。此外,各國的科學(xué)家和研究機(jī)構(gòu)開發(fā)了不少專用的圖像處理軟件環(huán)境,下面僅對主要的幾種作一簡單介紹。VC開發(fā)環(huán)境簡介VC編程需要的知識(shí)C/C++語言;對Windows操作系統(tǒng)的了解(底層編程);微軟類庫MFC(MicrosoftFoundationClass)VisualC++是一個(gè)可視化集成開發(fā)環(huán)境掌握‘工程’的概念菜單使用介紹、Debug/Release區(qū)別等等VC開發(fā)的兩種方式(一)SDK(softwaredevelopmentkit)方式又稱WIN32API(應(yīng)用程序接口)編程即直接調(diào)用32位Windo
3、ws(WIN32)操作系統(tǒng)提供的接口函數(shù)進(jìn)行編程。SDK編程(VC中)使用的語言是C語言。適合底層編程和對速度要求較高的環(huán)境,比如游戲開發(fā)、驅(qū)動(dòng)開發(fā)、數(shù)字圖形等看圖像打開、高斯噪聲繪制的例子VC開發(fā)的兩種方式(二)MFC方式又稱類庫編程,即程序主要不再直接跟操作系統(tǒng)API打交道(在需要的時(shí)候也可以調(diào)用API),而是使用封裝好的C++類庫。MFC編程的好處之一:可以使用MFC向?qū)砩沙绦蚩蚣埽岣咝试谶@堂課中后面講的程序都是MFC程序C++語言是一種中級語言自然語言(高級語言)中級語言低級語言(機(jī)器語言)跳過去intm_nA=10;Intm_nB=10;Intm_
4、nC=m_nB+m_nA;MOVAL,10MOVBL,10ADDAL,BLC++語言的優(yōu)缺點(diǎn)優(yōu)點(diǎn):編譯語言脫離語言環(huán)境運(yùn)行速度快代碼少缺點(diǎn):編譯過程復(fù)雜語言可讀性差容易犯錯(cuò)糾錯(cuò)困難C++語言是C語言的一個(gè)超集C語言C++語言VisualC++MFCC++是一種面向?qū)ο蟮某绦蛘Z言CWinApp:程序?qū)ο驝MainFrame:窗口對象Cdocument:文檔對象Cview:視對象類的使用CWinApp:程序?qū)ο驝MainFrame:窗口對象CDocument:文檔對象CView:視對象每一個(gè)對象的定義就是一個(gè)類,類是C++新派生的一個(gè)數(shù)據(jù)類型,比較抽象。通常情況下可以簡單
5、理解為分類。使用:CMainFramem_Frame;//創(chuàng)建一個(gè)類的實(shí)例,分配相應(yīng)的內(nèi)存。m_Frame.Create(NULL);//通過實(shí)例調(diào)用類中的變量、函數(shù)、行為等等。MFC類庫簡介MFC:微軟開發(fā)的C++程序的類庫,在類庫內(nèi)集成了Windows程序設(shè)計(jì)所經(jīng)常使用到的類,如:窗口的管理、控件的管理、文件的管理、視的管理等。同時(shí)對類進(jìn)行了樹狀的管理,通過封裝和繼承實(shí)現(xiàn)了簡單實(shí)用的目的,而且功能強(qiáng)大,在Windows環(huán)境下編程和使用VC++編程應(yīng)該對MFC了解。指針及其使用指針是C語言中一個(gè)非常重要的數(shù)據(jù)類型,通過指針可以實(shí)現(xiàn)直接對內(nèi)存的存取。指針的聲明:int
6、*m_nNum;指針的賦值:m_nNum=&m_ngg;m_nNum(0002h)*m_nNum(20h)(32)數(shù)組的使用:m_nNum=m_nArr[0];*(m_nNum+3)==m_nArr[4];聲明變量:intm_ngg=32;intm_nArr[100];20h00h43h1eh0000h0001h0002h1234h1235hFffeeh堆和棧的概念堆和棧是計(jì)算機(jī)管理內(nèi)存的兩種方式:??臻g一般存儲(chǔ)臨時(shí)數(shù)據(jù)。堆空間一般存儲(chǔ)較大的和生命期較長的數(shù)據(jù)。C語言中,單個(gè)的臨時(shí)變量都放在棧中。intm_nNum=32;charm_cChar=‘m’;大型的數(shù)組變量
7、放在堆中:intm_nNum[100];BYTE*m_nNum=(BYTE*)newBYTE[2000];new和delete操作符new操作符是C++的保留字,用來在堆中開辟一個(gè)指定大小的內(nèi)存空間。BYTE*m_nData=(BYTE*)newBYTE[m_nWidth*m_nHeight];??臻g中的數(shù)據(jù)在函數(shù)調(diào)用結(jié)束,如果沒有聲明為全局變量,將被自動(dòng)刪除。堆空間的變量不會(huì)自動(dòng)刪除,需要程序員手工刪除。delete[]m_nData;VC++6.0工作平臺(tái)IDE的使用菜單工具條提示欄視窗口編輯窗口輸出窗口窗口的概念圖示中是我們講要講到的程序的界面