freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mfc的圖片瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)(已修改)

2025-07-06 15:48 本頁(yè)面
 

【正文】 第1章 緒 論圖像處理源自于二戰(zhàn)中的攝影偵察。當(dāng)時(shí),處理操作是通過光學(xué)方法來完成的,判讀工作則是由專門精于此道并能確定炸彈襲擊結(jié)果的人員來做。隨著20世紀(jì)60年代后期衛(wèi)星圖像的出現(xiàn),更多基于計(jì)算機(jī)的工作便開展起來。彩色合成的衛(wèi)星圖像,有時(shí)的確漂亮的讓人吃驚,它們已經(jīng)成為人類視覺文化和對(duì)我們這個(gè)行星進(jìn)行認(rèn)知的一個(gè)組成部分。1980年1月《科學(xué)美國(guó)人》發(fā)表了一幅被稱之為“Plume 2”的著名圖像,它是1979年3月5日通過宇宙飛船旅行者1號(hào)在木星的衛(wèi)星上探測(cè)到的8次火山爆發(fā)中的第二次。這幅圖像在星際探險(xiǎn)圖像中是一個(gè)里程碑,人們第一次在宇宙中看到了正在爆發(fā)的火山。它也是圖像處理領(lǐng)域的一次偉大勝利。衛(wèi)星圖像以及宇宙探測(cè)器所獲取的圖像直到近年來才大量應(yīng)用圖像處理技術(shù)。在這些技術(shù)中,對(duì)計(jì)算機(jī)圖像進(jìn)行數(shù)字化處理以得到想要獲得的效果,比如使圖像的某一部分或某一特性更加明顯。正如計(jì)算機(jī)圖形學(xué)一樣,直到近幾年,圖像處理仍然局限在一些實(shí)驗(yàn)室里使用,只有這些地方才能提供昂貴的圖像處理計(jì)算機(jī)來滿足處理大量高分辨率圖像的需要。隨著價(jià)格低廉的高性能計(jì)算機(jī)和諸如數(shù)碼相機(jī)及掃描儀這樣的圖像采集設(shè)備的出現(xiàn),我們已經(jīng)看到圖像處理技術(shù)在向公眾領(lǐng)域轉(zhuǎn)移。經(jīng)典的圖像處理技術(shù)很平常地被圖像設(shè)計(jì)人員用來處理圖片和生成圖像,比如修復(fù)圖片的缺陷、改變色彩、對(duì)比度等,或者通過圖像邊緣增強(qiáng)這樣的處理來改變整個(gè)圖片的外觀。目前圖像處理的主流應(yīng)用是圖像的壓縮,即通過互聯(lián)網(wǎng)進(jìn)行傳遞或在可視電話和視頻會(huì)議中進(jìn)行動(dòng)態(tài)視頻圖像的壓縮??梢曤娫捠钱?dāng)今結(jié)合計(jì)算機(jī)圖像和傳統(tǒng)圖像處理的技術(shù),以期產(chǎn)生很高壓縮比的交叉領(lǐng)域之一。所有這一切都是圖像的“數(shù)字表達(dá)”這一不可抗拒的發(fā)展趨勢(shì)的組成部分。事實(shí)上,20世紀(jì)最強(qiáng)大、應(yīng)用最廣泛的圖像形式——電視圖像,也將不可避免的融入數(shù)字領(lǐng)域。數(shù)字圖像及其處理技術(shù)之所以發(fā)展的如此迅速并獲得廣泛的應(yīng)用,與其自身的優(yōu)點(diǎn)是息息相關(guān)的。1. 再現(xiàn)性好數(shù)字圖像處理與模擬圖像處理的根本不同在于,它不會(huì)因圖像的存儲(chǔ)、傳輸或復(fù)制等一系列變換操作而導(dǎo)致圖像質(zhì)量的退化。只要圖像在數(shù)字化時(shí)準(zhǔn)確地表現(xiàn)了原稿,則數(shù)字圖像處理過程始終能保持圖像的再現(xiàn)。2. 處理精度高按目前的技術(shù),幾乎可將一幅模擬圖像數(shù)字化為任意大小的二維數(shù)組,這主要取決于圖像數(shù)字化設(shè)備的能力。現(xiàn)代掃描儀可以把每個(gè)像素的灰度等級(jí)量化為16位甚至更高,這意味著圖像的數(shù)字化精度可以達(dá)到滿足任一應(yīng)用需求。對(duì)計(jì)算機(jī)而言,不論數(shù)組大小,也不論每個(gè)像素的位數(shù)多少,其處理程序幾乎是一樣的。換言之,從原理上講不論圖像的精度有多高,處理總是能實(shí)現(xiàn)的,只要在處理時(shí)改變程序中的數(shù)組參數(shù)就可以了。回想一下圖像的模擬處理,為了要把處理精度提高一個(gè)數(shù)量級(jí),就要大幅度地改進(jìn)處理裝置,這在經(jīng)濟(jì)上是極不合算的。3. 適用面寬圖像可以來自于多種信息源,它們可以是可見光圖像,也可以是不可見的波譜圖像(例如X射線圖像、射線圖像、超聲波圖像或紅外圖像等)。從圖像反映的客觀實(shí)體尺度看,可以小到電子顯微鏡圖像,大到航空照片、遙感圖像甚至天文望遠(yuǎn)鏡圖像。這些來自不同信息源的圖像只要被變換為數(shù)字編碼形式后,均是用二維數(shù)組表示的灰度圖像(彩色圖像也是由灰度圖像組合成的,例如RGB圖像由紅、綠、藍(lán)三個(gè)灰度圖像組合而成),因而均可用計(jì)算機(jī)來處理。即只要針對(duì)不同的圖像信息源,采取相應(yīng)的圖像信息采集措施,圖像的數(shù)字處理方法可適用于任何一種圖像。4. 靈活性高圖像處理大體上可分為圖像的像質(zhì)改善、圖像分析和圖像重建三大部分,每一部分均包含豐富的內(nèi)容。由于圖像的光學(xué)處理從原理上講只能進(jìn)行線性運(yùn)算,這極大地限制了光學(xué)圖像處理能實(shí)現(xiàn)的目標(biāo)。而數(shù)字圖像處理不僅能完成線性運(yùn)算,而且能實(shí)現(xiàn)非線性處理,即凡是可以用數(shù)學(xué)公式或邏輯關(guān)系來表達(dá)的一切運(yùn)算均可用數(shù)字圖像處理實(shí)現(xiàn)。鑒于數(shù)字圖像自身的特點(diǎn),對(duì)其進(jìn)行處理也不是一步就能完成的過程??蓪⑺殖芍T多步驟,必須一個(gè)接一個(gè)地執(zhí)行這些步驟,直到提取出有用的數(shù)據(jù)。而這些步驟中,數(shù)據(jù)的存儲(chǔ)、表示又占有相當(dāng)重要的地位,可以說,這是圖像處理中最基本的技術(shù)。因此,掌握不同格式圖像的編碼解碼、讀寫、顯示等方法是必不可少的。為什么會(huì)需要如此眾多不同類型的圖像文件格式呢?簡(jiǎn)單的回答就是因?yàn)橛刑嗖煌愋偷膱D像以及眾多不同需求的應(yīng)用。完整一些的回答還要考慮到市場(chǎng)份額、所有權(quán)以及在圖像工業(yè)中缺乏的必要協(xié)調(diào)。但是,已經(jīng)有一些標(biāo)準(zhǔn)的文件格式被開發(fā)出來。許多其他圖像類型可以通過圖像轉(zhuǎn)換軟件很容易地轉(zhuǎn)換成這些文件格式,如本設(shè)計(jì)最終開發(fā)出的軟件就可以將圖像在BMP、PCX、TGA、GIF及JPEG之間互相轉(zhuǎn)換。與計(jì)算機(jī)圖像相關(guān)的一個(gè)領(lǐng)域就是計(jì)算機(jī)圖形學(xué)。計(jì)算機(jī)圖形學(xué)是計(jì)算機(jī)科學(xué)的一個(gè)特殊領(lǐng)域,它指的是通過計(jì)算機(jī)對(duì)可視數(shù)據(jù)進(jìn)行再現(xiàn),這包括為顯示或打印生成計(jì)算機(jī)圖像,以及為輸出到監(jiān)視器、打印機(jī)、照相機(jī)或其他能提供圖像的設(shè)備上生成和處理的任何圖像(真實(shí)的或人造的)??梢哉J(rèn)為計(jì)算機(jī)圖形學(xué)是計(jì)算機(jī)圖像技術(shù)的一部分,圖形設(shè)計(jì)師所使用的許多工具也正在被計(jì)算機(jī)圖像專業(yè)人士所采用。在計(jì)算機(jī)圖形學(xué)中,圖像數(shù)據(jù)的類型被分為兩個(gè)主要種類:矢量和位圖。矢量圖像是指僅通過存儲(chǔ)關(guān)鍵點(diǎn)來表達(dá)線條、曲線和形體的方法。這些關(guān)鍵點(diǎn)足以對(duì)形體進(jìn)行定義,而將它變成圖像的過程稱之為渲染。當(dāng)圖像被渲染之后,它可以被認(rèn)為是位圖格式,其中每一個(gè)像素都具有與之相關(guān)的特定值。位圖圖像(也稱之為光柵圖像)可由圖像模型I(r, c)來表示,其中包含像素?cái)?shù)據(jù)以及某些文件格式存儲(chǔ)的相應(yīng)的亮度值。盡管有些文件被壓縮,但仍屬于位圖圖像的范疇,通常這些類型的圖像包含頭信息和原始圖像數(shù)據(jù)。文件頭必須包含的信息為:(1)行數(shù)(高);(2)列數(shù)(寬);(3)每像素位數(shù);(4)文件類型。此外,對(duì)于某些復(fù)雜的文件格式,文件頭還必須包含有關(guān)所使用的壓縮類型的信息,以及創(chuàng)建圖像所需要的其他必要的參數(shù)。本設(shè)計(jì)所討論和處理的圖像均為位圖圖像。第2章 軟件開發(fā)平臺(tái)及編程模式在系統(tǒng)的設(shè)計(jì)與開發(fā)中,軟件開發(fā)平臺(tái)及編程模式是關(guān)鍵,下面介紹一下開發(fā)平臺(tái)的選擇、Microsoft Visual C++及編程模式。 開發(fā)平臺(tái)的選擇在Windows環(huán)境下,目前比較流行的可視化開發(fā)工具主要有:Visual C++、Visual Basic、C++ Builder、Delphi、Power Builder及JBuilder等。而本軟件采用Microsoft Visual C++ ,并使用MFC Application Framework作為本軟件的基本架構(gòu)。采用C++來進(jìn)行圖像編程的主要原因是,與Java和C等現(xiàn)代編程語(yǔ)言相比,C++在程序運(yùn)行的效率、內(nèi)存使用的可控性和編程的靈活性上具有優(yōu)勢(shì)。圖像處理需要處理大量的圖像數(shù)據(jù),經(jīng)常使用復(fù)雜、費(fèi)時(shí)的算法,因此圖像處理程序的效率非常重要。C++代碼被編譯成匯編語(yǔ)言,可以直接在處理器上運(yùn)行,效率很高。而Java被編譯成字節(jié)碼,C被編譯成中間語(yǔ)言,都是不能在處理器上執(zhí)行的,因此效率較低。故從運(yùn)行效率的角度看,采用C++進(jìn)行圖像編程比較合適。對(duì)龐大的圖像數(shù)據(jù)進(jìn)行處理時(shí)需要使用大量的內(nèi)存,而計(jì)算機(jī)的物理內(nèi)存容量往往是有限的,因此需要有效地控制內(nèi)存的使用。C++直接控制內(nèi)存的分配和釋放,這雖繁瑣,且加大了編程的負(fù)擔(dān),但卻能有效地控制內(nèi)存的使用。Java和C引進(jìn)了垃圾收集機(jī)制,將開發(fā)人員從內(nèi)存管理的繁雜任務(wù)中解放出來,不再需要直接控制內(nèi)存的分配和釋放。但是,無效內(nèi)存的收集和釋放只能周期性地進(jìn)行,難以達(dá)到有效地使用內(nèi)存。同樣的運(yùn)算,使用Java和C所需的內(nèi)存比使用C++所需的內(nèi)存要多,即內(nèi)存的使用率較低。所以,從內(nèi)存的使用效率來看,采用C++進(jìn)行圖像處理編程更合適。C++中大量使用指針,使得編程的靈活性很高,這雖然增加了程序出錯(cuò)的可能性,但是便于程序員施展編程技巧來提高程序的效率。Java完全取消了指針,C極大地限制了指針的使用,這都限制了程序員施展技巧。因此,使用C++進(jìn)行圖像處理編程具有更大的靈活性。而在以C++為核心語(yǔ)言的可視化編程工具中,Microsoft Visual C++ 。鑒于以上原因,本設(shè)計(jì)使用Microsoft Visual C++ 。 Microsoft Visual C++及編程模式簡(jiǎn)介1. Visual C++可視化編程Visual C++的資源編輯器能以所見即所得(What you see is what you get)的形式直接編輯程序的用戶界面,為所有資源分配ID標(biāo)識(shí)號(hào)。ClassWizard能把對(duì)話框模板與生成的類定義或與已有的類代碼連接起來,為菜單項(xiàng)、控制等資源生成空的處理函數(shù)模板,創(chuàng)建消息映射條目,并將資源ID與處理函數(shù)連接起來。通過使用AppWizard,程序員的編程工作便簡(jiǎn)化為用資源編輯器直觀的設(shè)計(jì)界面,完善對(duì)話框類代碼,在空的處理函數(shù)模板處填寫響應(yīng)用戶操作的代碼,這是一種比較完善的可視化編程方法。但產(chǎn)品名“Visual C++”也容易誤導(dǎo)人,讓人認(rèn)為自己使用的是一個(gè)與Microsoft Visual Basic類似的完全可視化的系統(tǒng)。然而,使用Visual C++,開發(fā)人員必須真正地閱讀和編寫C++代碼。Visual C++向?qū)Э梢怨?jié)省時(shí)間和提高精度,但是,程序員也必須理解向?qū)Мa(chǎn)生的代碼,并且,最重要的是,還必須理解MFC庫(kù)的結(jié)構(gòu)和Windows操作系統(tǒng)的內(nèi)部工作方式。2. MFC(Microsoft Foundation Classes)應(yīng)用程序框架應(yīng)用程序框架的一種定義是:提供一般應(yīng)用程序需要的全部面向?qū)ο筌浖M件的集成集合。C++流行的一個(gè)原因是它可以用類庫(kù)擴(kuò)充。類庫(kù)是可在應(yīng)用程序中使用的有關(guān)C++類的集合。應(yīng)用程序框架是類庫(kù)的超集。一般的類庫(kù)只是一種孤立的類的集合,用來嵌入在任何程序中,但是,應(yīng)用程序框架卻定義了程序的結(jié)構(gòu)。自從MFC庫(kù)發(fā)布以來,MFC已經(jīng)成為主要的Windows類庫(kù)。使用MFC類庫(kù)構(gòu)建應(yīng)用程序具有以下優(yōu)點(diǎn):l MFC庫(kù)是C++的Microsoft Windows API。l 應(yīng)用程序框架生成的應(yīng)用程序使用了標(biāo)準(zhǔn)的結(jié)構(gòu),具有標(biāo)準(zhǔn)化的用戶接口,這對(duì)具有標(biāo)準(zhǔn)用戶界面的Win32程序來說,可以極大的減輕程序員的負(fù)擔(dān),使程序員不必過多地考慮界面,可把主要精力放在程序設(shè)計(jì)上,以提高程序設(shè)計(jì)的效率。l 使用應(yīng)用程序框架的應(yīng)用程序不僅小,而且運(yùn)行速度快,具有很大的靈活性。MFC封裝了Win32 SDK中的幾乎所有函數(shù),能實(shí)現(xiàn)Win32系統(tǒng)的任何功能。l Visual C++工具降低了編碼的復(fù)雜性。l MFC庫(kù)應(yīng)用程序框架有豐富的特性,如:Windows API的C++接口、通用的(非Windows所特有的)類、“共用根對(duì)象”類層次結(jié)構(gòu)、流線式多文檔界面(MDI)應(yīng)用程序支持等。l 強(qiáng)大的功能。除封裝了大部分的Win32 SDK函數(shù)外,MFC還提供了應(yīng)用程序本身的數(shù)據(jù)和操作及ActiveX、OLE、Internet、WinSock、DAO(Data Access Objects)、ODBC(Open DataBase Connectivity)等操作類。MFC框架的核心是文檔/視圖結(jié)構(gòu)(DocumentView Architecture),這是一個(gè)很好用、但又往往較難以入門的功能。簡(jiǎn)單的說,文檔/視圖結(jié)構(gòu)就是將數(shù)據(jù)和對(duì)數(shù)據(jù)的觀察或數(shù)據(jù)的表現(xiàn)(顯示)相分離。文檔僅處理數(shù)據(jù)的實(shí)際讀、寫操作,視圖則是顯示和處理數(shù)據(jù)的窗口,視圖可以操作文檔中的數(shù)據(jù)。3. Win32編程編寫Visual C++程序?qū)嶋H上就是一個(gè)構(gòu)造類和把類實(shí)例化的過程。由于Windows 95/98/Me/NT/2000是PC平臺(tái)中應(yīng)用最廣泛的操作系統(tǒng),而Microsoft力圖用一個(gè)叫做Win32的標(biāo)準(zhǔn)32位應(yīng)用程序接口作為對(duì)這幾個(gè)操作系統(tǒng)的共同開發(fā)接口,所以經(jīng)常采用Win32來代表Microsoft的32位Windows操作系統(tǒng),因此Visual C++主要用于針對(duì)Win32的應(yīng)用程序開發(fā)。Win32具有搶先式多任務(wù)、多線程和線性尋址內(nèi)存管理等特征,Win32編程的基本要求包括:l 應(yīng)用程序的執(zhí)行獨(dú)立于硬件設(shè)備。l 應(yīng)用程序具有圖形用戶界面。l 能在Windows 95/98/Me和Windows NT/2000/XP之間透明移植,并可移植到支持Windows NT/2000的RISC硬件平臺(tái)。l 高性能的搶先式多任務(wù)和多線程管理。l 高級(jí)的多媒體支持。l 通過OLE 2技術(shù)實(shí)現(xiàn)多個(gè)應(yīng)用程序的對(duì)象定位。Microsoft為進(jìn)行Win32編程提供了一套名為Win32 SDK的應(yīng)用程序編程接口,其中包括上千個(gè)Win32系統(tǒng)函數(shù)。Visual C++包括一套叫做MFC(Microsoft Foundation Class Library)的C++類庫(kù),其中定義了進(jìn)行Win32編程所需要的各種類。有的類封裝了大部分的Win32 SDK中應(yīng)用程序的編程接口函數(shù);有的類封裝的則是應(yīng)用程序本身的數(shù)據(jù)和操作;還有的類封裝了ActiveX、OLE和Internet編程特性以及WinSock網(wǎng)絡(luò)特性和DAO(Data Access Objects)、ODBC(Open Database Connectivity)數(shù)據(jù)訪問功能。Win23 SDK和MFC是實(shí)現(xiàn)Win32編程的主要工具。Visual C++的AppWizard工具能自動(dòng)生成應(yīng)用程序框架,該框架定義了應(yīng)用程序的輪廓,并提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法。運(yùn)用Visual C++的資源編輯器(Resource Editor)能直觀地設(shè)計(jì)程序的用戶界面,而ClassWizard能把用戶界面和程序代碼連接起來。程序員要做的就是用MFC類實(shí)現(xiàn)框架中未完成的應(yīng)用程序的特定功能部分。所以使用Visual C++可以實(shí)現(xiàn)Win32的可視化程序設(shè)計(jì)。4. 消息映射在使用Visual C++進(jìn)行Win32程序設(shè)計(jì)時(shí),消息映射是一個(gè)非常重要的概念。Windows應(yīng)用程序是消息驅(qū)動(dòng)的,應(yīng)用程序不能直接得到用戶所做的操作,如鼠標(biāo)按鍵、鍵盤輸入和窗口移動(dòng)等。這些操作由操作系統(tǒng)管理,操作系統(tǒng)檢測(cè)到操作事件后,便向相關(guān)的應(yīng)用程序發(fā)送消息,應(yīng)用程序響應(yīng)這些消息來完成用戶的操作。(1)消息Windows中的消息是操作系統(tǒng)與應(yīng)用程序之間、應(yīng)用程序與應(yīng)用程序之間、
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1