本書以開發PhotoSprite(一種包含Photoshop核心圖像處理功能的軟件)為講解對象,深入剖析圖形圖像編程技術知識,取材新穎、內容豐富、循序漸進、圖文並茂,是一本實用性很強的專業用書。
本書不僅介紹入門知識,還詳盡介紹復雜的算法技巧。在講述PhotoSprite圖像軟件的各項功能操作和實現原理的同時,還提供瞭典型的應用場閤和貼切的效果點評。讀者不僅能掌握製作精美圖像效果的技巧,並精通實現這些效果的編程技術,還能開拓思路、舉一反三,自行創作齣更加齣類拔萃的設計方案。
本書適閤各類想深入掌握圖形圖像編程技術的開發者閱讀,盡管本書采用Visual C#來講解,但是涉及到的核心算法都是相通的。相信平麵設計、圖像處理、醫學成像、分子化學、地理信息、衛星雲圖、遊戲開發和影視廣告等領域內的廣大工程技術人員和編程愛好者都會喜歡本書的內容。
本書源代碼下載地址:www.fecit.com.cn“下載專區”或www.photosprite.com。
前言:
歡迎進入計算機圖形設計和圖像處理的精彩世界。當今是一個熱衷於用圖形和圖像錶達信息的時代。可視化技術無時無刻不在影響著我們的工作、學習、生活、行動和思想觀念。
麵對街頭高掛的廣告牌,看到CCTV正在播放的“快樂驛站”,迴味《星戰》裏震撼的特技場景,都給我們留下深刻印象。它們是怎麼完成的?核心的技術是什麼?我能夠實現嗎?……我們不得不求助於圖形設計與圖像處理的最底層的核心技術。
古語說:“授人以魚,三餐之需;授人以漁,終生之用”。指導讀者進行平麵設計,並提供操作方法,這種“授人以魚”的做法掃除不少朋友進入平麵設計領域的心理阻礙,增加他們的學習信心。但要從根本上解決他們的疑惑,關鍵還是要“授人以漁”,教給他們“捕魚”的方法,讓他們在圖形圖像的海洋中搏擊,去捕獲一條條“大魚”。本書內容詳盡,覆蓋麵廣,既介紹平麵設計,又講解實現原理。可謂不僅送您“魚”,還教您“捕魚”。
值得一提的是,本書配套軟件PhotoSprite是根據Microsoft剛剛發布的Visual Studio 2005進行開發的,完全用C#語言進行編寫,同時本書還提供相關網站(http://www.PhotoSprite.com)與讀者交流,並為讀者答疑。作為Visual Studio 2005的體驗性教程,本書便於程序員自學和實踐,同樣也適閤其他非C# 語言程序員閱讀,即便沒有基礎的入門者,閱讀本書也不會有太大睏難。
C#作為一種功能強大,且易於使用的麵嚮對象編程語言,在.NET開發平颱中占有極其重要的地位,被稱為.NET的正統開發語言。熱衷於C#語言的人都會喜歡上Visual C# 2005,它是Visual Studio 2005的一個重要成員,帶來瞭大量令人興奮的新功能,例如泛型、局部類和匿名方法等。其他的新功能同樣是對.NET開發寶庫的重要補充。與C#的第一個版本相比,增加這些功能和語言將會提高您的整體生産效率,從而使您能夠以更快的速度寫齣更加簡潔的代碼。
由於Visual Studio 2005剛剛發布,並且還在不停地升級和完善中,這方麵可供參考的資料十分匱乏,加上作者水平有限,時間緊迫,所以書中難免會有疏漏和錯誤之處,我們真誠地歡迎讀者來信指正。
本書不是連載小說,不必一頁頁讀下去纔會找到感覺,您甚至不需要按順序進行閱讀,所有的內容都被分門彆類,每一個效果都相當獨立,不過章節之間會彼此聯係,所以在閱讀時可先從感興趣的章節開始,然後遵循實現思想,進一步讀下去。
一本技術書籍的價值往往並非限於初次閱讀帶來的愉悅,更重要的是它能否成為日後編程過程中的左右手。本書除瞭是一本很好的自學讀本外,還是一本非常好的參考手冊,倒不是因為它麵麵俱到(那是Adobe或Microsoft的責任),而是因為它講述瞭許多彆處很難見到,但在實際項目開發中又非常重要的高級技巧。如果您想成為一名圖形圖像程序設計的高手,請不要錯過這本書。
2006年4月於南京
本書導讀
1.誰是本書的讀者
本書適閤於一切熱衷於圖像處理、醫學成像、衛星雲圖、遊戲開發和影視廣告等領域內的廣大專業技術人員和平麵設計愛好者。
為瞭閱讀本書,您至少應瞭解Windows編程方麵的基本知識,掌握數字圖像處理和計算機圖形學方麵的專業知識。同時,還需要具備數學分析、綫性代數、空間解析幾何和概率論等數學基礎。
然而,這幾方麵的要求都是次要的,關鍵是您必須要有學習圖形圖像程序設計的動力和決心,這樣您纔有能力獲得(或已經獲得)這些知識和編程經驗。
本書所有程序都需要您親自動手去實踐,一切從零開始。盡管書中有些算法比較復雜,然而閱讀全書將是十分輕鬆的。第一,對於任何圖像處理效果,筆者都是嚴格按思路進行講解的;第二,對於圖像處理的相關基礎知識和算法,本書相應的地方都有必要的介紹。
筆者的齣發點是:讓您在一個輕鬆的環境下閱讀本書,絕不會要求您在閱讀時,旁邊要放一大堆關於平麵設計、數字圖像處理、計算機圖形學和基礎數學等方麵的書籍。
2.從本書獲得什麼
平麵設計和程序開發是當前IT行業兩大熱點問題,它們相互依賴、共同發展。本書將用全新的觀念和您一起探索這兩個令人興奮的主題,並使您有機會掌握圖像處理最基本的編程技術和設計思想,有助於您成為一個專業的圖形圖像程序設計員。
通過對本書的學習,您將會獲得以下幾方麵的收獲。
l 使用和開發Photoshop其實是一件十分有趣的事情。
l 所有的代碼都嚮您開放,更有在綫技術支持為您排憂解難。
l 清楚圖像處理程序設計的基本流程,一切從零開始。
l 平麵設計和圖像編程相互依賴,結閤這兩種技術將做得更好。
l 開發圖形圖像程序,將有助於提高挑戰和競爭意識。
l 獲得解決復雜問題的組織經驗,更加重視數學和設計思想。
l 由於知道技術開發的核心原理而比彆人更有潛力。
3.本書的特點
本書采用循序漸進的方法,遵循由概念、算法到編程實踐的步驟,介紹瞭應用Visual Studio 2005開發圖形圖像軟件的技術過程,力求做到既介紹基本知識又提煉編程思想。
(1)豐富的內容
全書以開發PhotoSprite為主綫,既涉獵平麵設計知識,又深入圖像處理技術。通過經典的案例嚮大傢介紹實用圖像處理過程中最核心的編程技術。
事實上,平麵設計和程序開發都在不斷地嚮前發展。平麵設計豐富瞭人們的視覺世界,而程序開發又為圖像處理提供瞭方法和思路。本書將這兩種技術完美地結閤在一起。
全書中所有案例力求做到四點:第一,統一的編程模式;第二,突齣設計思想;第三,力求代碼簡潔;第四,取材新穎、圖文並茂。
(2)有價值的指導
寫作本書就要體現齣它的價值。全書融閤最新的圖形圖像程序設計思想,力求使案例具有趣味性、普遍性、實用性和高效性。
本書提供的所有方法函數都是一次性製作而成的。讀者朋友可以參考這些代碼及實現它的算法,從中獲得一些有益的啓示。其中類、屬性、方法、變量命名及其作用都很講究,請仔細品味。
(3)豐富的解說
本書通過圖文並茂的方式對案例所涉及的概念、算法和編程思想等均作瞭詳細的解釋。對於書中所示例的代碼,有精確的注釋和重要的解說。對於軟件源代碼,從變量到方法均有詳盡的說明。
(4)輕鬆地閱讀
本書將麵嚮對象的編程技術直接應用於數字圖像處理中,並按知識和功能進行細化,建立通用的圖像處理函數,從而減少閱讀的繁瑣性,增加代碼的可重用性和可移植性,提高開發效率。對於復雜的類,書中用文字的形式示齣其功能。
程序的所有代碼一律采用規範的編碼風格。在很多地方,我們都可以對變量名見名知意。本書堅持將“無障礙閱讀”放在第一位。
(5)完美的介紹
對於本書的絕大多數案例,都提供實現原理,並嚴格按設計思路去建立。絕不會在中途遺漏步驟,齣現“猶抱琵琶半遮麵”的現象,也不會草草收場,以緻阻礙閱讀和後繼開發。
按照書中的設計思路將不僅有助於加快閱讀進程,而且一定能夠建立一個完整的圖像處理應用程序。
(6)開放式的結構
所有新建立的多層次類結構都是有助於讀者理解、修改和維護的。所有的類都是開放的,可以嚮其中添加新方法以支持新功能,而不會對原有功能構成任何威脅,這就是麵嚮對象的優勢。
(7)良好的交互性
本書的主要內容為圖像處理程序設計,所有的類都具有很好的通用性。同時,它們都支持交互程序設計,均提供外部數據傳輸接口。
良好的交互性還體現在PhotoSprite的界麵上:第一,PhotoSprite允許您處理自己的圖像文件,而不僅僅局限於隻能處理本書所提供的示例圖像;第二,可以用菜單或對話框等方法選擇不同的處理算法。
4.本書的結構安排
本書共分8章,取材新穎、內容豐富、循序漸進和圖文並茂是本書的重要特色。
第1章為開篇語,主要對全書作總體介紹。其中包括預覽PhotoSprite軟件界麵,瞭解Visual Studio 2005的新特性,明白圖形圖像編程方麵的要點知識,以及對全書作一個指導性的說明。
第2章主要講解怎樣構築PhotoSprite的基本框架。其中包括搭建PhotoSprite的工作界麵,介紹PhotoSprite的基本操作,概述圖像格式的各種優缺點和說明顔色模式的處理原理等基本內容。
第3章主要教您如何打造方便靈活的多功能工具箱。其中包括移動、選取、套索、鉛筆、畫刷、橡皮、直綫、矩形、文本、吸管、油漆桶等工具和角度盤、畫布控件。
第4章為本書核心內容的開端,主要講解圖像色彩和色調調整方麵的內容。通過對本章內容的學習,讀者朋友們可以方便、直觀地對圖像的色相、飽和度和灰度等進行調節,增加對圖像處理的學習興趣,促進對圖像核心模塊開發的認識和應用。
第5章為數學基礎知識迴顧,主要講解如何運用基本的數學知識使圖像處理産生更加迷人的效果。其中包括基本的代數運算、復雜的幾何變換和深奧的邏輯運算等內容。
第6、7章將全書推嚮高潮,將為大傢揭開Photoshop夢幻濾鏡的神秘麵紗,教您如何製作齣神奇的藝術效果。其中包括模糊、銳化、浮雕、雜點、藝術、扭麯、風格化和其他共8組濾鏡效果,對大傢學習圖像處理中的濾鏡效果有很大幫助。
第8章為引伸篇,將為大傢講述數字圖像處理在科研中的應用,同時指明其研究方嚮。主要就圖像分割、形態學、圖像濾波和邊緣檢測共4個部分來進行講解。
5.特殊約定
如果您決定嘗試繼續閱讀本書,那麼首先要感謝您的信任。
筆者是一個追求風格的人,善於用簡練、清晰、流暢的語言文字將復雜的技術以簡單的方式錶達齣來。
為瞭幫助您閱讀本書的所有代碼,筆者希望您能熟悉一下作品中使用的一些約定。本書程序雖在大多數情況下都遵守C#編碼規範,但有時為瞭突齣代碼的簡潔和美觀,在不引起閱讀障礙和理解歧義的情況下,使用瞭如下幾個常見的縮略詞。
用bg代錶background單詞;用fg代錶foreground單詞;用src代錶source單詞;用dst代錶destination單詞;用tmp代錶temporary單詞。
用b錶示bitmap型變量;用bmData錶示BitmapData型變量。
用BPP錶示整型常量4,取Bytes Per Pixel之意,即每像素所含字節數;用BP2P錶示整型常量8,取Bytes Per 2 Pixels之意,即每兩像素所含字節數。
6.開發環境
閱讀本書至少需要Visual Studio 2005集成開發環境。
PhotoSprite所有源程序都是采用C# 2.0語言編寫的,在Windows 2000 Server SP4 + Visual Studio 2005環境下調試通過。它能正確地運行於Windows XP SP2或Windows Server 2003 SP1等所有安裝瞭.NET 2.0框架的操作係統。
PhotoSprite不會占用過多的係統資源,所有圖像處理中産生的臨時圖像均保存到磁盤中,通過磁盤與內存進行數據交換來實現圖像處理。
同時,為瞭對比學習圖像處理技術,建議安裝Photoshop 6.0或Fireworks MX及其以上版本的圖像處理軟件。
7.在綫資源
圖形圖像是一個復雜而深邃的話題,寥寥數百頁不可能解決所有的問題,加上時間緊張,書中難免會存在一些問題,懇請各位讀者提齣批評和指正,同時也希望和大傢一起學習和交流。
本書的所有最新消息(包括源代碼及更新算法)和技術支持均在PhotoSprite發布網站(http://www.PhotoSprite.com)上給齣。網站除瞭維護與本書有直接關聯的內容外,還提供許多您感興趣的.NET文章、代碼、工具和評論。歡迎大傢訪問,並提齣您的獨到見解。
第1章 我的PhotoSprite 1
1.1 PhotoSprite預覽 1
1.2 Visual Studio 2005震撼未來 3
1.3 圖像處理精髓 5
第2章 構築PhotoSprite基本框架 9
2.1 設計PS的基本工作界麵 9
2.1.1 標題欄 10
2.1.2 菜單欄 10
2.1.3 工具欄 13
2.1.4 工具箱 14
2.1.5 狀態欄 14
2.1.6 繪圖區 15
2.2 開發PS軟件的基本操作 15
2.2.1 新建圖像文件 15
2.2.2 打開圖像文件 16
2.2.3 保存圖像文件 17
2.2.4 預覽及打印圖像文件 18
2.2.5 退齣軟件 18
2.2.6 圖像導齣查看 19
2.2.7 撤銷/重做操作 19
2.2.8 剪切/復製/粘貼操作 19
2.2.9 軟件基本設置 20
2.3 圖像格式概述 20
2.3.1 BMP(*.BMP)格式 21
2.3.2 GIF(*.GIF)格式 21
2.3.3 JPEG(*.JPG, *.JPEG)格式 23
2.3.4 PNG(*.PNG)格式 23
2.3.5 TIFF(*.TIF, *.TIFF)格式 25
2.3.6 PhotoSprite專用格式PSF(*.PSF)格式 26
2.4 顔色模式處理 31
2.4.1 位圖顔色模式 31
2.4.2 CMYK顔色模式 32
2.4.3 灰度顔色模式 32
2.4.4 HSL顔色模式 33
2.4.5 索引色顔色模式 33
2.4.6 RGB顔色模式 34
2.4.7 顔色拾取器 34
2.5 本章小結 38
第3章 打造多功能的工具箱 39
3.1 開發PS工具之一:移動工具 39
3.2 開發PS工具之二:選取工具 39
3.3 開發PS工具之三:套索工具 42
3.4 開發PS工具之四:鉛筆工具 44
3.5 開發PS工具之五:畫刷工具 47
3.6 開發PS工具之六:橡皮工具 47
3.7 開發PS工具之七:直綫工具 48
3.8 開發PS工具之八:矩形工具 50
3.9 開發PS工具之九:文本工具 51
3.10 開發PS工具之十:吸管工具 51
3.11 開發PS工具之十一:油漆桶工具 51
3.12 開發PS工具之十二:角度盤 56
3.13 開發PS工具之十三:繪圖畫布 56
3.14 本章小結 57
第4章 開發PS的核心圖像處理模塊 59
4.1 “色彩平衡”圖像處理模塊 59
4.2 “亮度”圖像處理模塊 62
4.3 “對比度”圖像處理模塊 65
4.4 “色調/飽和度”圖像處理模塊 68
4.5 “Gamma矯正”圖像處理模塊 70
4.6 “灰度”圖像處理模塊 74
4.7 “閾值”圖像處理模塊 81
4.8 “負像”圖像處理模塊 87
4.9 “僞彩色”圖像處理模塊 89
4.10 “色彩通道”圖像處理模塊 97
4.11 “亮度映射”圖像處理模塊 103
4.12 “直方圖”圖像處理模塊 106
4.13 “色彩均衡化”圖像處理模塊 113
4.14 本章小結 116
第5章 深入圖像處理的數學領域 117
5.1 基本的代數運算 117
5.1.1 加法運算 117
5.1.2 減法運算 120
5.1.3 乘法運算 122
5.1.4 除法運算 124
5.1.5 平均運算 126
5.1.6 求異運算 127
5.1.7 Max/Min運算 129
5.2 圖像處理中的幾何運算 131
5.2.1 圖像平移 131
5.2.2 圖像縮放 136
5.2.3 圖像裁剪 138
5.2.4 圖像鏇轉 140
5.2.5 圖像翻轉 143
5.2.6 圖像轉置 146
5.2.7 圖像傾斜 148
5.2.8 圖像修整 152
5.3 圖像處理的邏輯運算 158
5.3.1 邏輯與運算 158
5.3.2 邏輯或運算 160
5.3.3 邏輯非運算 161
5.3.4 邏輯異或運算 162
5.4 本章小結 164
第6章 “殿堂級”PS設計:常用濾鏡開發 165
6.1 濾鏡模塊開發之一:模糊濾鏡組 165
6.1.1 模闆應用 165
6.1.2 平滑 172
6.1.3 高斯模糊 174
6.1.4 運動模糊 176
6.1.5 徑嚮模糊 180
6.2 濾鏡模塊開發之二:銳化濾鏡組 185
6.2.1 銳化 185
6.2.2 加強銳化 187
6.2.3 自由銳化 189
6.2.4 鈍化濛版 192
6.3 濾鏡模塊開發之三:浮雕濾鏡組 194
6.3.1 調和浮雕 194
6.3.2 八方嚮浮雕 196
6.3.3 灰度浮雕 201
6.3.4 彩色浮雕 204
6.4 濾鏡模塊開發之四:雜點濾鏡組 206
6.4.1 新增雜點 206
6.4.2 雪花雜點 209
第7章 讓我的PS魅力四射:夢幻特效開發 213
7.1 夢幻特效開發之一:藝術濾鏡組 213
7.1.1 民間藝術輕鬆做——剪紙 213
7.1.2 鉛筆速寫好容易——素描 215
7.1.3 追憶童年小人書——連環畫 220
7.1.4 驚悚詭異環境幽——碧綠 223
7.1.5 懷舊相片需珍藏——棕褐 225
7.1.6 色彩渲染顯魅力——染色 228
7.1.7 冰雕雪塑晶瑩透——冰凍 231
7.1.8 趁熱打鐵激情高——熔鑄 233
7.1.9 如夢如幻情意濃——暗調 235
7.1.10 拋磚引玉秀色彩——對調 237
7.1.11 突發奇想生怪念——怪調 239
7.2 夢幻特效開發之二:扭麯濾鏡組 242
7.2.1 蘋果瘦身好可愛——擠壓 242
7.2.2 蜜蜂發福樂哈哈——球麵 246
7.2.3 杯中美酒漩起來——漩渦 248
7.2.4 隨波起舞好飄逸——波浪 251
7.2.5 乾擾條紋有學問——摩爾紋 254
7.3 夢幻特效開發之三:風格化濾鏡組 257
7.3.1 霧氣騰騰彌漫開——擴散 257
7.3.2 精彩人生綫條化——查找邊緣 260
7.3.3 霓虹燈光迷人眼——照亮邊緣 263
7.3.4 萬眾矚目聚焦點——燈光 266
7.3.5 猶抱琵琶半遮麵——馬賽剋 269
7.3.6 經典作品要收藏——油畫 273
7.3.7 光綫強弱把握好——曝光 278
7.4 夢幻特效開發之四:其他濾鏡組 280
7.4.1 自我設計樂融融——自定義 280
7.4.2 若隱若現朦朧美——圖像融閤 283
7.4.3 你躲我藏好神奇——魔術圖 286
7.4.4 眼睛迷人顯魅力——去紅眼 289
7.4.5 圖像文字巧聯係——藝術字符 291
7.5 本章小結 296
第8章 Photoshop的擴展:在科研中的應用 297
8.1 圖像分割 297
8.1.1 自適應閾值選取 297
8.1.2 二值圖像區域標記 300
8.1.3 麵積測量 307
8.1.4 消除小區域 311
8.1.5 輪廓跟蹤 314
8.1.6 周長測量 320
8.1.7 邊緣提取 323
8.1.8 投影量的計算 325
8.2 圖像形態處理學 328
8.2.1 圖像腐蝕 329
8.2.2 圖像膨脹 337
8.2.3 圖像開運算 344
8.2.4 圖像閉運算 345
8.2.5 圖像細化 346
8.2.6 圖像粗化 353
8.3 圖像濾波處理 354
8.3.1 N×N均值濾波 355
8.3.2 自適應平滑濾波 361
8.3.3 N×N中值濾波 366
8.3.4 十字型中值濾波 368
8.3.5 N×N最值濾波 371
8.4 邊緣檢測 373
8.4.1 Roberts算子 373
8.4.2 Sobel算子 376
8.4.3 Prewitt算子 380
8.4.4 Kirsch算子 382
8.4.5 邊緣增強 385
8.4.6 邊緣均衡化 388
8.4.7 自定義模闆檢測 392
8.5 本章小結 396
附錄A C#編碼規範和編程好習慣 397
A.1 命名慣例和規範 397
A.2 縮進和間隔 400
A.3 良好的編程習慣 403
A.4 注釋 406
A.5 異常處理 407
後記 409
參考文獻 410
發表於2024-11-23
圖像編程精髓 2024 pdf epub mobi 電子書 下載
圖書標籤: 圖像編程 圖像處理 計算機科學 C #編程 圖形學 圖像 alfjeijieq
帥書一本
評分開源的C#圖像處理引擎
評分開源的C#圖像處理引擎
評分開源的C#圖像處理引擎
評分開源的C#圖像處理引擎
圖像編程精髓 2024 pdf epub mobi 電子書 下載