版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第三章 VC圖像編程基礎 第三章 VC圖像編程基礎 3.1 VC+可視化編程可視化編程3.2 位圖基礎位圖基礎3.3 設計設計CImage類類 3.4 使用使用CImage類類 3.5 圖像的顯示圖像的顯示3.6 CImage類應用實例類應用實例 第三章 VC圖像編程基礎 3.1 VC+可視化編程可視化編程 3.1.1 概述概述 VC+是是Microsoft公司推出的開發(fā)公司推出的開發(fā)Win 32應用程應用程序的面向對象的可視化集成工具。序的面向對象的可視化集成工具。 VC+提供了提供了Microsoft基礎類庫基礎類庫(MFC), 對對Windows 所用的所用的Win 32應用程序接口應用
2、程序接口(API)進行了徹進行了徹底的封裝,從而可以使用面向對象的方法來進行底的封裝,從而可以使用面向對象的方法來進行Win 32應用程序的開發(fā)。應用程序的開發(fā)。 優(yōu)點優(yōu)點:大大縮短了應用程序開發(fā)周期,:大大縮短了應用程序開發(fā)周期, 降低了降低了開發(fā)成本,也將程序員從大量的復雜勞動中解放出來。開發(fā)成本,也將程序員從大量的復雜勞動中解放出來。 第三章 VC圖像編程基礎 VC+ 包含源代碼文本編輯器、設計用戶界面(菜單、對包含源代碼文本編輯器、設計用戶界面(菜單、對話框、話框、 圖標等)的資源編輯器、圖標等)的資源編輯器、 項目管理器、項目管理器、 檢查程序錯誤檢查程序錯誤的集成調(diào)試器等工具。的集
3、成調(diào)試器等工具。 它還提供了功能強大的應用程序向導工具它還提供了功能強大的應用程序向導工具AppWizard和類和類向導工具向導工具ClassWizard。 AppWizard用于生成各種不同類型的具有用于生成各種不同類型的具有Windows界面風界面風格的應用程序的基本框架;在生成應用程序框架后,使用格的應用程序的基本框架;在生成應用程序框架后,使用ClassWizard便可輕松完成創(chuàng)建新類、定義消息處理函數(shù)、重便可輕松完成創(chuàng)建新類、定義消息處理函數(shù)、重載虛擬函數(shù)等操作。載虛擬函數(shù)等操作。 第三章 VC圖像編程基礎 3.1.2 用戶界面用戶界面 圖3-1 VC+ 6.0用戶界面 工作區(qū)窗口輸
4、出窗口編輯區(qū)窗口第三章 VC圖像編程基礎 用用VC+ 6.0開發(fā)應用程序主要涉及三大類型的文件:文件開發(fā)應用程序主要涉及三大類型的文件:文件(Files)、)、 項目(項目(Projects)和工作區(qū)()和工作區(qū)(Workspaces)。)。 在在VC+ 6.0中,中, 通常意義下開發(fā)一個通常意義下開發(fā)一個Windows應用程序是應用程序是指生成一個項目,該項目包含著一組相關的文件,指生成一個項目,該項目包含著一組相關的文件, 如各種頭文如各種頭文件(件(.h)、)、 實現(xiàn)文件(實現(xiàn)文件(.cpp)、)、 資源文件(資源文件(.rc)、)、 圖標文件圖標文件(.ico)、)、 位圖文件(位圖文
5、件(.bmp)等,)等, 而該項目必須在一個工作區(qū)而該項目必須在一個工作區(qū)打開。打開。 當?shù)谝淮谓⒁粋€應用程序時,應選擇新建一個項目,此當?shù)谝淮谓⒁粋€應用程序時,應選擇新建一個項目,此時時VC+6.0自動建立一個工作區(qū),并把新建的項目在該工作區(qū)中自動建立一個工作區(qū),并把新建的項目在該工作區(qū)中打開,打開, 以后要對該項目進行修改、補充、以后要對該項目進行修改、補充、 增加等工作,只要打增加等工作,只要打開對應的工作區(qū)即可。開對應的工作區(qū)即可。 第三章 VC圖像編程基礎 VC+ 6.0以項目工作區(qū)(以項目工作區(qū)(Project Workspace)的方)的方式來組織文件、項目和項目配置,通過項
6、目工作區(qū)窗口式來組織文件、項目和項目配置,通過項目工作區(qū)窗口可以查看和訪問項目中的所有元素。可以查看和訪問項目中的所有元素。 首次創(chuàng)建項目工作區(qū)時,首次創(chuàng)建項目工作區(qū)時, 要創(chuàng)建一個項目工作區(qū)要創(chuàng)建一個項目工作區(qū)目錄、一個項目工作區(qū)文件、目錄、一個項目工作區(qū)文件、 一個項目文件和一個工作一個項目文件和一個工作區(qū)選項文件。區(qū)選項文件。 項目工作區(qū)文件用于描述工作區(qū)及其內(nèi)容,擴展名項目工作區(qū)文件用于描述工作區(qū)及其內(nèi)容,擴展名為為.dsw。項目文件用于記錄項目中各種文件的名字和位。項目文件用于記錄項目中各種文件的名字和位置,置, 擴展名為擴展名為.dsp。工作區(qū)選項文件用于存儲項目工作。工作區(qū)選項文
7、件用于存儲項目工作區(qū)設置,區(qū)設置, 擴展名為擴展名為.opt。 第三章 VC圖像編程基礎 項目工作區(qū)窗口項目工作區(qū)窗口主要由主要由三個面板三個面板構成,構成, 即即FileView、 ResouceView和和ClassView,分別用于顯示項目中定義的,分別用于顯示項目中定義的C+類、資源文件和包含在項目工作區(qū)中的文件。類、資源文件和包含在項目工作區(qū)中的文件。 每個面板用于指定項目工作區(qū)中所有項目的不同視圖,每個面板用于指定項目工作區(qū)中所有項目的不同視圖, 視圖中每個文件夾可以包含其他文件夾或各種元素(如,視圖中每個文件夾可以包含其他文件夾或各種元素(如,子項目、文件、子項目、文件、 資源、
8、類和標題等)。通過項目工作區(qū)窗資源、類和標題等)。通過項目工作區(qū)窗口可以定位到項目中的任一位置,以對其進行相應的編輯口可以定位到項目中的任一位置,以對其進行相應的編輯(源程序、資源等)(源程序、資源等)第三章 VC圖像編程基礎 文本編輯器的使用與文本編輯器的使用與Word非常類似,通過它可非常類似,通過它可方便的進行程序源代碼的輸入、方便的進行程序源代碼的輸入、 編輯和修改工作。編輯和修改工作。 在資源編輯器中可進行各種資源的編輯工作,如在資源編輯器中可進行各種資源的編輯工作,如對話框、圖標、菜單、位圖等,從而直觀地設計程序對話框、圖標、菜單、位圖等,從而直觀地設計程序的用戶界面。的用戶界面。
9、 輸出窗口用于顯示項目建立過程中所產(chǎn)生的錯誤輸出窗口用于顯示項目建立過程中所產(chǎn)生的錯誤信息、信息、 調(diào)試過程中的輸出信息等,用它可以方便地定調(diào)試過程中的輸出信息等,用它可以方便地定位到工程中的錯誤位置,位到工程中的錯誤位置, 觀察到程序調(diào)試過程中的輸觀察到程序調(diào)試過程中的輸出結果。出結果。 第三章 VC圖像編程基礎 3.1.3 框架和文檔框架和文檔視結構視結構 基于基于MFC的應用程序框架是的應用程序框架是VC+編程的骨架。運用編程的骨架。運用MFC應用程序框架具有如下應用程序框架具有如下優(yōu)點:優(yōu)點: (1)標準化的程序結構和用戶接口:這對具有標準用)標準化的程序結構和用戶接口:這對具有標準用
10、戶界面的戶界面的Win 32程序來說,可以極大地減輕程序員的負程序來說,可以極大地減輕程序員的負擔,使程序員不必過多地考慮界面,而把主要精力放在程擔,使程序員不必過多地考慮界面,而把主要精力放在程序設計上,以提高程序設計的效率。序設計上,以提高程序設計的效率。 (2) 框架產(chǎn)生的程序代碼短,運行速度快,具有很框架產(chǎn)生的程序代碼短,運行速度快,具有很大的靈活性。大的靈活性。 (3) MFC封裝了封裝了Win 32 SDK中的幾乎所有的函數(shù),中的幾乎所有的函數(shù), 能夠實現(xiàn)能夠實現(xiàn)Win 32系統(tǒng)的任何功能。系統(tǒng)的任何功能。 第三章 VC圖像編程基礎 MFC框架的核心框架的核心是是文檔文檔視結構視結
11、構(Document-View Architecture)。簡單地說,)。簡單地說,文檔文檔視結構就是將數(shù)據(jù)和對數(shù)據(jù)視結構就是將數(shù)據(jù)和對數(shù)據(jù)的觀察相分離的觀察相分離,文檔僅處理數(shù)據(jù)的讀、寫等操作,視則是顯示,文檔僅處理數(shù)據(jù)的讀、寫等操作,視則是顯示和處理數(shù)據(jù)的窗口,視可以操作文檔中的數(shù)據(jù)。和處理數(shù)據(jù)的窗口,視可以操作文檔中的數(shù)據(jù)。 MFC框架的基本結構包括應用程序對象、主框架窗口、文框架的基本結構包括應用程序對象、主框架窗口、文檔、視等,框架通過命令和消息將它們結合在一起,共同對用檔、視等,框架通過命令和消息將它們結合在一起,共同對用戶的操作做出響應。戶的操作做出響應。 應用程序的對象類由應用
12、程序的對象類由CWinApp派生,一個應用程序有且僅派生,一個應用程序有且僅有一個應用程序對象,它負責應用程序實例的初始化和進程結有一個應用程序對象,它負責應用程序實例的初始化和進程結束時的資源清除,以及創(chuàng)建和管理應用程序所支持的所有文檔束時的資源清除,以及創(chuàng)建和管理應用程序所支持的所有文檔模板的工作。模板的工作。第三章 VC圖像編程基礎 主框架窗口是應用程序的主窗口。主框架窗口是應用程序的主窗口。MFC框架定義了框架定義了兩種基本的主框架窗口類,即單文檔接口兩種基本的主框架窗口類,即單文檔接口SDI(Single Document Interface)主框架窗口類和多文檔接口)主框架窗口類和
13、多文檔接口MDI(Multiple DocumentInterface)主框架窗口類。)主框架窗口類。 對于對于SDI,視是主框架窗口的子窗口;對于,視是主框架窗口的子窗口;對于MDI,必,必須從須從CMDIChildWnd派生出主框架窗口的子窗口,視是派生出主框架窗口的子窗口,視是該子窗口的子窗口。該子窗口的子窗口。 第三章 VC圖像編程基礎 文檔類由文檔類由CDocument類派生,文檔是一個應用類派生,文檔是一個應用程序數(shù)據(jù)元素的集合,它構成應用程序所使用的數(shù)程序數(shù)據(jù)元素的集合,它構成應用程序所使用的數(shù)據(jù)單元,另外,它還提供了管理和維護數(shù)據(jù)的手段。據(jù)單元,另外,它還提供了管理和維護數(shù)據(jù)的
14、手段。 文檔是一種數(shù)據(jù)源,數(shù)據(jù)源有很多種,文檔是一種數(shù)據(jù)源,數(shù)據(jù)源有很多種, 最常最常見的是磁盤文件,但它不一定是一個磁盤文件,文見的是磁盤文件,但它不一定是一個磁盤文件,文檔的數(shù)據(jù)源也可以來自串行口、網(wǎng)絡或攝像機輸入檔的數(shù)據(jù)源也可以來自串行口、網(wǎng)絡或攝像機輸入信號等。信號等。第三章 VC圖像編程基礎 視類從視類從CView或其子類(或其子類(CEditView、CFormView、CRecordView、CScrollView等)等)派生,是數(shù)據(jù)的用戶窗口,為用戶提供了文檔可派生,是數(shù)據(jù)的用戶窗口,為用戶提供了文檔可視的數(shù)據(jù)顯示,它將文檔的部分或全部內(nèi)容顯示視的數(shù)據(jù)顯示,它將文檔的部分或全部
15、內(nèi)容顯示在窗口中。在窗口中。 視還給用戶提供了一個與文檔中的數(shù)據(jù)進行交互視還給用戶提供了一個與文檔中的數(shù)據(jù)進行交互的界面,它把用戶的輸入轉化為對文檔中數(shù)據(jù)的的界面,它把用戶的輸入轉化為對文檔中數(shù)據(jù)的操作。操作。 每個文檔都會有一個或多個視顯示,一個視既可每個文檔都會有一個或多個視顯示,一個視既可以輸出到屏幕窗口中,也可以輸出到打印機上。以輸出到屏幕窗口中,也可以輸出到打印機上。第三章 VC圖像編程基礎 圖圖3-2 MFC應用程序框架結構應用程序框架結構(a) SDI框架結構;框架結構; (b) MDI框架結構框架結構 子 框 架 窗 口 1子 框 架 窗 口 3視 3子 框 架 窗 口 2視
16、2主 框 架 窗 口菜 單 欄主 框 架 窗 口視 1狀 態(tài) 欄文 檔 1文 檔 2文 檔 模 板 1文 檔 模 板 2應 用 程 序 對 象菜 單 欄視狀 態(tài) 欄應 用 程 序 對 象文 檔文 檔 模 板(a)(b)第三章 VC圖像編程基礎 文檔文檔視結構視結構大大簡化了多數(shù)應用程序的設計開發(fā)過程。大大簡化了多數(shù)應用程序的設計開發(fā)過程。它帶來的它帶來的好處主要有好處主要有: (1) 將數(shù)據(jù)操作和數(shù)據(jù)顯示、將數(shù)據(jù)操作和數(shù)據(jù)顯示、 用戶界面分離用戶界面分離。這是一。這是一種種“分而治之分而治之”的思想,的思想, 這種思想使得模塊劃分更加合理、這種思想使得模塊劃分更加合理、 模塊獨立性更強,同時也
17、簡化了數(shù)據(jù)操作和數(shù)據(jù)顯示、用戶模塊獨立性更強,同時也簡化了數(shù)據(jù)操作和數(shù)據(jù)顯示、用戶界面設計工作。界面設計工作。 文檔只負責數(shù)據(jù)管理,不涉及用戶界面;視只負責數(shù)據(jù)文檔只負責數(shù)據(jù)管理,不涉及用戶界面;視只負責數(shù)據(jù)輸出與用戶界面的交互,可以不考慮應用程序的數(shù)據(jù)是如何輸出與用戶界面的交互,可以不考慮應用程序的數(shù)據(jù)是如何組織的,甚至當文檔中的數(shù)據(jù)結構發(fā)生變化時也不必改動視組織的,甚至當文檔中的數(shù)據(jù)結構發(fā)生變化時也不必改動視的代碼。的代碼。 第三章 VC圖像編程基礎 (2) MFC在在文檔文檔視結構視結構中提供了許多中提供了許多標準操作界面標準操作界面,包括新建文件、包括新建文件、 打開文件、打開文件、
18、保存文件、打印等,保存文件、打印等,減輕了用減輕了用戶的工作量戶的工作量。用戶不必再編寫這些重復的代碼,從而可以。用戶不必再編寫這些重復的代碼,從而可以把更多的精力放到編寫應用程序特定功能的代碼上(主要把更多的精力放到編寫應用程序特定功能的代碼上(主要是從數(shù)據(jù)源中讀取數(shù)據(jù)和顯示)。是從數(shù)據(jù)源中讀取數(shù)據(jù)和顯示)。第三章 VC圖像編程基礎 (3)支持打印和打印預覽)支持打印和打印預覽,用戶無需編寫代碼或只需要編,用戶無需編寫代碼或只需要編寫很少的代碼,就可以為應用程序提供打印和打印預覽功能。寫很少的代碼,就可以為應用程序提供打印和打印預覽功能。同樣的功能如果自己寫的話,同樣的功能如果自己寫的話,
19、需要數(shù)千行代碼。需要數(shù)千行代碼。 由于由于文檔文檔視結構功能強大視結構功能強大,因此一般用,因此一般用VC+進行程序設進行程序設計時都首先使用計時都首先使用AppWizard生成生成基于文檔基于文檔視結構的單文檔視結構的單文檔或多文檔應用程序框架,或多文檔應用程序框架,然后在其中添加自己需要的代碼,完然后在其中添加自己需要的代碼,完成應用程序的特定功能。成應用程序的特定功能。 第三章 VC圖像編程基礎 3.1.4 編程基本流程編程基本流程 用用VC+進行進行Win 32可視化編程的基本流程如下:可視化編程的基本流程如下: (l) 生成框架:生成框架: 運行運行AppWizard, 并按需要指定
20、生成并按需要指定生成應用程序的選項,指定框架中應用程序的選項,指定框架中視類的基類視類的基類(CView、 CEditView、 CFormView、 CScrollView、 CTreeView等)。等)。 AppWizard將按指定的選項生成應用程序框架和相關將按指定的選項生成應用程序框架和相關的文件,包括項目(的文件,包括項目(project)的工作空間()的工作空間(workspace)文)文件和源文件,主要是應用程序(件和源文件,主要是應用程序(application)、)、 文檔文檔(document)、)、 視(視(view)和主框窗口()和主框窗口(main frame)的)的
21、C+代碼文件(代碼文件(*.cpp, *.h文件),以及缺省包含標準界面文件),以及缺省包含標準界面接口的資源文件(接口的資源文件(*.rc)。)。 第三章 VC圖像編程基礎 (2) 設計用戶界面設計用戶界面: 利用利用VC+資源編輯器編輯資源文件,資源編輯器編輯資源文件, 設計菜單、對話框、工具條、字符串、加速鍵、位圖、圖標、設計菜單、對話框、工具條、字符串、加速鍵、位圖、圖標、 光標等項目資源。光標等項目資源。 (3) 聯(lián)接界面和代碼聯(lián)接界面和代碼:利用:利用ClassWizard把資源文件中定義把資源文件中定義的界面資源標識的界面資源標識ID(如菜單項、工具條和對話框中的控件等)(如菜單
22、項、工具條和對話框中的控件等)在指定的源文件中映射成相應的函數(shù)模板。在指定的源文件中映射成相應的函數(shù)模板。 (4)編寫、修改函數(shù)代碼)編寫、修改函數(shù)代碼:利用:利用ClassWizard可以方便地在可以方便地在源代碼編輯器(源代碼編輯器(source code editor)中跳轉到指定的函數(shù)代碼處。)中跳轉到指定的函數(shù)代碼處。 第三章 VC圖像編程基礎 (5) 根據(jù)需要創(chuàng)建新類和編寫代碼根據(jù)需要創(chuàng)建新類和編寫代碼: 用用ClassWizard創(chuàng)建新創(chuàng)建新類,類, 并生成相應的源文件。并生成相應的源文件。 如新類是對話框類,如新類是對話框類, 可先用資源編輯器生成對話框模板,可先用資源編輯器生
23、成對話框模板, 然后用然后用ClassWizard創(chuàng)建對話框類代碼,并與模板聯(lián)接,編寫新創(chuàng)建對話框類代碼,并與模板聯(lián)接,編寫新類相關的源代碼。類相關的源代碼。 (6)實現(xiàn)文檔類)實現(xiàn)文檔類:在:在AppWizard生成的框架基礎上設計文檔生成的框架基礎上設計文檔數(shù)據(jù)的數(shù)據(jù)結構,在文檔類中增加相應的成員變量和成員函數(shù),數(shù)據(jù)的數(shù)據(jù)結構,在文檔類中增加相應的成員變量和成員函數(shù), 實現(xiàn)對數(shù)據(jù)的操作和文檔與數(shù)據(jù)的接口。實現(xiàn)對數(shù)據(jù)的操作和文檔與數(shù)據(jù)的接口。 第三章 VC圖像編程基礎 (7) 實現(xiàn)框架中標準的文件操作命令實現(xiàn)框架中標準的文件操作命令,即,即Open、Save和和Save As命令:框架已完成
24、標準的文件操作命令的所命令:框架已完成標準的文件操作命令的所有接口,程序員要做的僅僅是編寫文檔類的串行化有接口,程序員要做的僅僅是編寫文檔類的串行化(Serialize())成員函數(shù)。)成員函數(shù)。 (8) 實現(xiàn)視類實現(xiàn)視類:框架已構造好了文檔與視的關系,:框架已構造好了文檔與視的關系, 視視能方便地訪問文檔中的能方便地訪問文檔中的public數(shù)據(jù)成員,可根據(jù)文檔的需數(shù)據(jù)成員,可根據(jù)文檔的需要構造一個或多個視類。通過要構造一個或多個視類。通過ClassWizard把視的用戶接把視的用戶接口資源映射成函數(shù)模板,并編寫函數(shù)代碼。口資源映射成函數(shù)模板,并編寫函數(shù)代碼。 第三章 VC圖像編程基礎 (9)
25、 如需要,增加分割窗口如需要,增加分割窗口(splitter window):): 在在S D I 的 主 框 窗 口 類 或的 主 框 窗 口 類 或 M D I 的 子 窗 口 類 中 添 加 一 個的 子 窗 口 類 中 添 加 一 個CSplitterWnd對象,對象, 并在窗口類的并在窗口類的OnCreateClient成員函成員函數(shù)中對數(shù)中對CSplitterWnd對象進行創(chuàng)建和初始化。如果用戶分對象進行創(chuàng)建和初始化。如果用戶分割了一個窗口,框架將給文檔創(chuàng)建并增加附加的視對象。割了一個窗口,框架將給文檔創(chuàng)建并增加附加的視對象。 (10)建立、調(diào)試、修改應用程序)建立、調(diào)試、修改應用
26、程序。如有問題,。如有問題, 可根可根據(jù)需要重復步驟(據(jù)需要重復步驟(2)(10)。)。 (11) 測試應用程序。測試應用程序。如有問題,可根據(jù)需要重復步如有問題,可根據(jù)需要重復步驟(驟(2)(11)。)。 (12) 結束結束。 第三章 VC圖像編程基礎 3.2 位圖(bitmap)基礎 Vc+中(Windows系統(tǒng))把位圖分為兩類:設備相關位圖和設備無關位圖。 3.2.1 與設備相關位圖(DDB) 與設備相關位圖是一種內(nèi)部位圖格式,它顯示的圖像依計算機顯示系統(tǒng)的設置不同而不同,因此一般不存儲文件。結構BITMAP定義了DDB位圖的類型、寬度、高度、顏色格式和像素位值。該結構在Windows.
27、h中定義如下(MSDN中可以查到):第三章 VC圖像編程基礎 Typedef struct tagBITMAP int bmType;/位圖類型,必須為0 int bmWith;/寬度 int bmHeight;/高度 int bmWidthBytes;/每一掃描行字節(jié)數(shù) BYTE bmPlanes;/顏色層數(shù) BYTE bmBitsPixel;/每一像素所占的位數(shù) LPVOID bmBits; /存放像素值內(nèi)存塊地址 BITMAP;第三章 VC圖像編程基礎 Windows SDK提供了標準的DDB位圖操作數(shù),MFC中定義了CBitmap類來說明DDB位圖, CBitmap類封裝的主要函數(shù):
28、LoadBitmap( ):從應用程序的資源中裝入位圖資源。 CreateBitmap( ):用指定了寬、高和位圖模式的內(nèi)存位圖來創(chuàng)建位圖。 CreateCompatibleBitmap( ):創(chuàng)建與指定設備兼容的位圖。 GetBitmap( ):從位圖中獲取信息 SetBitmapBits( ): 用指定的圖像位來設置位圖的位值。第三章 VC圖像編程基礎 3.2.2 設備無關位圖(DIB) 設備無關位圖(DIB)可以在不同的機器系統(tǒng)中顯示位圖所固有的顏色,屬于一種外部的位圖格式,與硬件無關,存儲文件格式的后綴為.bmp; BMP文件組成(分別使用MSDN查看!) 文件頭結構BITMAPFIL
29、EHEADER 位圖信息頭結構BITMAPINFOHEADER 顏色信息表RGBQUAD 圖像像素數(shù)據(jù)第三章 VC圖像編程基礎 3.3 CImage 類介紹 數(shù)字圖像處理編程一般用VC+編程環(huán)境,VC+環(huán)境是一個非常優(yōu)秀的編程環(huán)境,非常適合圖像處理編程,它集成了C/C+,并且提供了很多實用的框架,能快速的進行工程開發(fā)。 在VC+ 6.0及以下版本中沒有專門的圖像處理類,但有幾個用于圖像處理的API函數(shù),使用起來不是很方便,需要用戶自己封裝專門的圖像處理類。 從VC+ .NET開始的版本提供了一個跟圖像有關的類CImage類,這個類封裝了跟圖像有關的很多操作。 第三章 VC圖像編程基礎 CIma
30、ge類的成員可分為連接與創(chuàng)建、輸入與輸出、位圖類型與參數(shù),以及圖形繪制與位圖塊傳送等4類。 1. 連接與創(chuàng)建連接與創(chuàng)建Attach( ) 將一個DIB(或DDB)位圖與CImage對象相連接; Detach( ) 位圖與CImage對象相分離; Create( ) 創(chuàng)建一個DIB位圖并將它與已有CImage對象相連接; Destroy( ) 位圖與CImage對象相分離并刪除; 第三章 VC圖像編程基礎 2. 輸入與輸出輸入與輸出GetImporterFilterString() 返回系統(tǒng)支持的輸入文件格式類型及其描述; GetExporterFilterString() 返回系統(tǒng)支持的輸出文
31、件格式類型及其描述; Load() 讀入指定圖像文件中的圖像; LoadFromResource() 讀入指定資源文件中的圖像; Save() 按指定類型保存圖像,文件名中不能省略后綴; IsNull() 判別源圖像文件是否已經(jīng)讀入; 第三章 VC圖像編程基礎 3. 位圖類型與參數(shù)位圖類型與參數(shù)GetWidth() 返回當前圖像的寬度(以像素為單位); GetHeight() 返回當前圖像的高度(以像素為單位); GetBPP() 返回當前圖像的每個像素的位數(shù); GetBits() 返回當前圖像像素數(shù)據(jù)的指針 GetPitch() 返回相鄰兩行像素首地址之間的間隔; 第三章 VC圖像編程基礎
32、GetPixelAddress() 返回指定像素數(shù)據(jù)存放位置的存儲地址; GetMaxColorTableEntries() 返回調(diào)色板單元數(shù); IsDibSection() 確定位圖是否為DIB位圖; IsIndexed() 判別位圖中是否有調(diào)色板; IsTransparencySupported() 判別應用程序是否支持透明位圖; AlphaBlend() 是否支持透明或半透明顯示的狀態(tài); 第三章 VC圖像編程基礎 4. 圖形繪制與位圖塊傳送圖形繪制與位圖塊傳送GetDC() 返回當前位圖的設備描述表;ReleaseDC() 釋放設備描述表;GetPixel() 返回指定位置像素的顏色;S
33、etPixel() 設置指定位置像素的顏色;SetPixelIndexed() 設置指定位置像素顏色的索引值;SetPixelRGB() 設置指定位置像素的紅綠藍分量;GetColorTable() 獲取調(diào)色板顏色分量(紅、綠、藍)值;SetColorTable() 設置調(diào)色板顏色分量(紅、綠、藍)值; 第三章 VC圖像編程基礎 SetTransparentColor() 設置透明顏色的索引值,只能有一種顏色可為透明; Draw() 從源矩形復制到目標矩形,支持伸縮、融合與透明; BitBlt() 從位圖的一個矩行區(qū)域復制到另一位圖上的指定區(qū)域; MaskBlt() 位圖塊傳送時須與指定的模板
34、圖像做邏輯操作; PlgBlt() 從位圖的矩形區(qū)域到另一位圖上平行四邊形間的位塊傳輸; StretchBlt() 從源矩形復制到目標矩形,支持伸縮; TransparentBlt() 位圖塊傳送時復制到透明色的位圖; 第三章 VC圖像編程基礎 3.6 CImage類應用實例類應用實例:實驗一實驗一3.6.1 建立應用程序框架(見實驗指導書)建立應用程序框架(見實驗指導書) 第三章 VC圖像編程基礎 圖像處理軟件包-OpenCV 什么是OpenCV OpenCV是Intel公司開發(fā)的開源計算機視覺庫。它由一系列 C 函數(shù)和少量 C+ 類構成,實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。 重要
35、特性 OpenCV 擁有包括 300 多個C函數(shù)的跨平臺的中、高層 API。它不依賴于其它的外部庫盡管也可以使用某些外部庫。 OpenCV 對非商業(yè)應用和商業(yè)應用都是免費(FREE)的。(細節(jié)參考 license)。 OpenCV 為Intel Integrated Performance Primitives (IPP) 提供了透明接口。這意味著如果有為特定處理器優(yōu)化的的 IPP 庫, OpenCV 將在運行時自動加載這些庫。 更多關于 IPP 的信息請參考: http:/ 第三章 VC圖像編程基礎 誰創(chuàng)建了它 作者列表可以在文件AUTHORS中找到。 此外,還有很多人給出了建議、補丁、BUG 報告等等。一個不太完整的列表在文件THANKS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑基礎工程樁基礎
- 2024至2030年中國工作母機專用聯(lián)軸器數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國實驗室電導率/電阻率計數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國雙面雙花毯數(shù)據(jù)監(jiān)測研究報告
- 經(jīng)管營銷企業(yè)資產(chǎn)損失所得稅稅前扣除管理辦法講解
- 探究函數(shù)與方程-深入理解代數(shù)與解題技巧
- 2024年中國高強度鋼結構樓承板市場調(diào)查研究報告
- 2024年中國蒙娜麗莎工藝品市場調(diào)查研究報告
- 2024年中國立式剝皮機市場調(diào)查研究報告
- 急診病歷書寫標準化研究計劃
- 電力基礎知識匯總課件
- 初中語文人教六年級下冊《專題閱讀:概括主要事件》PPT
- 大象版小學科學二年級上冊實驗報告單全冊
- 2020-2022學年部編版八年級語文古詩詞專項練習卷 部編人教版八年級上冊
- 手術室護士崗位說明書版
- 13、停電停水等突發(fā)事件的應急預案以及消防制度
- DB42T1811-2022西瓜設施育苗技術規(guī)程
- 醫(yī)療HRP整體解決方案課件
- 【知識點解析】拋物線的光學性質及其應用
- 冠心病介入治療技術醫(yī)療質量控制指標(2021年版)可編輯版
- 分布式光伏安裝清包合同
評論
0/150
提交評論