影像处理实作(1)

上传人:kms****20 文档编号:51513199 上传时间:2018-08-14 格式:PPT 页数:15 大小:1.72MB
返回 下载 相关 举报
影像处理实作(1)_第1页
第1页 / 共15页
影像处理实作(1)_第2页
第2页 / 共15页
影像处理实作(1)_第3页
第3页 / 共15页
影像处理实作(1)_第4页
第4页 / 共15页
影像处理实作(1)_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《影像处理实作(1)》由会员分享,可在线阅读,更多相关《影像处理实作(1)(15页珍藏版)》请在金锄头文库上搜索。

1、影像處理 實作(1)2008/02/27視窗程式運作模式 視窗程式可以想像成一個執行無窮迴圈的程式,不斷地監看並接收 著從外界進入的訊息。Windows Form程式編輯模式建立事件處理函式點選後直接跳至程式編 輯畫面,讓使用者輸入 對應的動作。建立事件處理函式 控制項常見事件 TextBox Click TextChanged Button Click Label 註:大部分的事件的命名都會和其內容有所關聯,因 此可以從名稱中去推敲該事件的功能。程式碼撰寫 程式碼架構 一個表單被視為一整個大的類別,所有在此表單當中的控制項 和他們的事件處理皆被視為該類別的成員。 其他使用者自訂的成員變數可以

2、宣告在該類別的 一開頭。練習 請建立一個專案(檔案新增專案)。 請選擇Visual C#,選擇Windows應用程式請記得變更專案名稱與 儲存路徑 請在表單上放上兩個PictureBox、兩個Button與 一個OpenFileDialog控制項如下:練習請修改Button的 Text屬性練習 如要增加OpenFileDialog的篩選條件,請在其 Filter當中加入。 例如:在該屬性中填入 Bmp檔案|*.bmp|Jpeg檔案|*.jpg代表要對bmp圖片與jpg圖片來做篩選。 編譯程式 按建置建置方案或F6 再按偵錯 啟動但不偵錯或Ctrl+F5 註:在偵錯模式下執行影像處理程式速度較慢

3、像素灰階與色彩模型w通常影像的灰階以一個位元組,即8位元,來表現一組灰階。 故共有28=256種組合,代表256個灰度。 w常見的色彩模型為RGB模型,代表一種顏色可分成三個紅、 綠、藍三種channnel。每一種channel用一個byte表示,故 一種channel可表現256種程度的色階。w一張全彩的點矩陣影像(*.bmp),像素最少會用三個位元 組表示(24位元),故共可表現出(256)3種顏色。n有關此類資訊一般都稱作像素格式(Pixel Format)。所謂的灰色,又稱中性色 彩,不含顏色資訊,僅可 代表亮度。RGB三個 channel的值相同。載入二維圖片請在其一Button的C

4、lick事件中加入:if (openFileDialog1.ShowDialog() = DialogResult.OK) /開啟開檔對話盒,回傳DialogResult.OK代表使用者按下開啟檔案按鈕Bitmap source = new Bitmap(openFileDialog1.FileName); /MessageBox.Show(source.PixelFormat.ToString();pictureBox1.Image = source; /Image是一個PictureBox的公開屬性,用來指定顯示的圖片Bitmap類別中的PixelFormat用來記載該圖形像素的相關資訊;

5、最常 用來判斷該影像中每個像素是由幾個位元所組成的。範例:if (source.PixelFormat != PixelFormat.Format8bppIndexed)MessageBox.Show(“Please use 8-bit grau scale image!“);return;注意事項 PictureBox控制項不具scroll的功能,欲自動產生 scroll bar,請先放置Panel控制項,並把 PictureBox放入其中。記得設定以下屬性: Panel的AutoScroll必須為true PictureBox的SizeMode設定為AutoSize讀取與寫入像素值w呼叫圖

6、形類別Bitmap中的GetPixel方法可以讀取某 一座標點(x, y)的顏色值: 語法:Color c = pic.GetPixel(x, y); 注意:這裡的x是水平軸的座標,y是垂直軸的座標w呼叫圖形類別Bitmap中的SetPixel方法可以寫入某 一座標點(x, y)的顏色值: 語法:pic.SetPixel(x, y, c); c的型態為Color,可以用Color類別的FromArgb來設定RGB 的值以產生顏色,如: pic.SetPixel(x, y, Color.Argb(255, 255, 0);w在下頁的範例裡,我們將像素的顏色讀出之後,複 製到三個二維的陣列(分別代表RGB),再由這個 二維的陣列讀出值,再組合成顏色寫入另一個圖形 物件中。讀取像素值,寫入像素值w讀取影像的像素時,一般常用兩層迴圈,先讀列,再讀行。 請將以下程式碼加入button2的Click事件處理函式中:練習 試圖將像素逐一複製到另外一張影像中並顯示出 來。 試圖改變像素的RGB值,觀察其結果。例如: 將每一個R、G、B分別加上一個數值(最大不超過 255)後,再行複製。 將每一個R、G、B用255來減。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号