- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第第 18 章章 影影 像像 處處 理理 程程 式式
第第 章章 影影 像像 處處 理理 程程 式式
簡介簡介 ::
簡介簡介 ::
之前我們已經在秀圖軟體與小畫家單元中學過不少影像物件的操作 ,但是真正的影像
處理應該是像彩色變黑白 、圖片變亮、變暗或改變影像實際大小等等 ,真正將影像本質作
改變的技術 。雖然目前影像處理軟體已經非常成熟,但是如果你的科系必須學會影像處理
的原理(如電機系) ,甚至你未來想進行數位影像領域的研究 ,這個單元就非常適合你了!
從程式操作中我們可以較深入的了解影像結構與原理 ,為你的進一步的學習或研究打下 良
好基礎 。
18-1 建立建立開啟影像與存檔的程式介面開啟影像與存檔的程式介面
建立建立開啟影像與存檔的程式介面開啟影像與存檔的程式介面
[建立主功能表]
請開啓新專案 ,加入一個 menuStrip1 主功能表 ,先填入以下項目。
接著自工具箱取出 openFileDialog1 與 saveFileDialog1 對話方塊 ,設定他們的Filter 屬
性皆為 『*.jpg|*.jpg 』,就是簡化本單元處理的對象皆為 jpg 檔案 。當然我們也需要一個
pictureBox1 來裝載被處理的影像 ,將其SizeMode 屬性設為 AutoSize( 自動縮放到原圖大小)
即可 。接著請點擊三個功能表項目寫入程式如下 ,至此你的程式就可以開啟與儲存檔案
了!這些程式與小畫家單元幾乎完全相同 ,只是多宣告了一個公用的影像物件B 用來記錄
載入影像的初始狀態 ,稍後就是拿這個物件B 作為影像處理的目標 。
18-2 檢視檢視 RGB 色版的色版的功能功能
檢視檢視 色版的色版的功能功能
請在檢視功能表輸入以下項目 :
[三原色的解析抽離]
我們先從較簡單的色版處理開始 ,請記得標準的數位影像全彩模式是以 RGB ,就
紅(Red)綠(Green)藍(Blue)三原色組成顏色資訊 ,每種顏色亮度值範圍 0~255 ,也就是一
個 byte(位元組)的值域 ,因為C#很注重資料型別 ,所以請先記得每個顏色的亮度資料型別
byte 。請雙擊 『紅色色版』項目寫程式如下 :
上面程式首先宣告一個準備承接處理結果的影像物件 P ,它的大小(Width Height)
應該與載入的 B 影像物件相同(B.Width, B.Height) 。須注意:程式這樣寫,如果你在沒有
載入影像之前就按紅色色版是會當掉的 !因為B 還不存在嘛 !接著是一個雙重迴圈,就
將影像上面的各個像素點(Color C)逐一取出(GetPixel)運算的意思 。我們在打磚塊單元也用
過類似的雙層迴圈 ,當時是用來建立 10× 10 的磚牆物件 ,二維資料的處理多半是這樣作的 。
[只抽取紅色回存]
取出 C 點後 ,我們要的是該點顏色的紅色成分 ,可使用 C.R 屬性取出 ,然後用
Color.FromArgb 方法重組顏色點 C 的成分 ,使得藍與綠色值(第二與第三個參數)都為 0 ,
就是只剩紅色成分了 !再將此顏色點放到 P 影像物件對應的位置(i, j)上面 。跑完迴圈後 P
物件就是處理完成的影像 ,將它貼到 pictureBox1 的 Image 屬性就可以看到結果了 !如下
圖左 橡皮鴨影原始影像 ,右 像抽取的紅色色版 。
[綠與藍色的色板抽取]
同理可證 ,綠色與藍色的色版程式如下:
18-3 灰階灰階與黑白與黑白影像影像
灰階灰階與與黑白黑白影像影像
[RGB 三色亮度相等稱為灰階]
所謂灰階就 RGB 三色的值都變成一樣 ,全部為 0 時是黑色 ,全部為 255 時就是白
色了 !如何合理的讓彩色變成灰階 ?最直接的想法是將三原色平均 ,以平均值取代原來的
三色成分值就 灰階了 !
[小心 !顏色值為 Byt
文档评论(0)