2014年10月19日 星期日

Homework 2: 直方圖與直方圖均化處理


原始 bmp 影像

From Image Processing Class

Photoshop 影像色彩直方圖 (histogram) 的顯示方式。

From Image Processing Class

2014年9月17日 星期三

2014F 課程說明

2014F 影像處理課程說明:

1. 期中考 30 %。
期中考範圍: 第一週至第八週課堂上所討論的主題都是考試範圍。

2. 程式作業 70%。
程式作業包含原始碼 40% 與報告 60%。
報告以部落格 ( http://hwshow-ipc.blogspot.tw/ ) 形式繳交,原始碼使用 cpp 副檔名及 unicode 格式存檔,並上傳至 dropbox 網站, 再將分享連結附於部落格報告之中。每個作業原始碼佔報告分數 40% 比須完全符於程式撰寫規範, 若不符合規範, 又沒有在期限內修改完成, 原始碼成績以零分計。
若原始碼符合規範,報告成績成績分原則上分成 A、B、C 三級,分數分別為 90、75、60,再進行加減 5 分微調。基本上,A 級報告就是言之有物、認真討論作業內容的報告,B 級作業則是中規中矩但只完成部分項目的報告、C 級報告則一看就是敷衍了事的報告,可能討論不出任何內容或盡是抄襲網路文章的報告。

[ 程式碼撰寫規範 ]
1. 變數名稱必須包含資料型態與代表意義,並統一放置於檔案最前方,以方便尋找。請勿多個變數宣告在同一行, 並於每一行變數宣告後, 附加說明變數用途。例如:
int iImageWidth; // 影像寬度。
int iImageHeight; // 影像高度。

上述的變數名稱 iImageWidth,小寫的 i 表示資料型態 int;Image 是影像的意思,第一個字母 I 必須大寫, 用以和前面小寫資料型態區別;Width 是寬度的意思,第一個字母 W 也要大寫, 用來和前面 Image 最後的小寫字母 e 區別。因此,當我們在程式中看到 iImageWidth 時,不但對其型態一目了然,也很容易掌握其含意為影像寬度。

2. 縮排時, 大括號 {}請內縮並上下對齊。

請參閱範例程式。

2013年10月24日 星期四

Share life in 3D with Seene

4K movie / Beauty retouch



1. 4K Movie
2. still vs. motion
3. retouch
4. ROI: Region of Interest
5. color: luminance and chrominance
6. color correction
7. warp
8. digital image = sampling (spatial) + quantization (color)

2012年12月14日 星期五

Week 14: JPEG 壓縮標準 (1)

1. 維基百科: JPEG中文條目, JPEG英文條目

2. 規格書 CCITT Rec. T.81 (1992 E) "INFORMATION TECHNOLOGY – DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES"

3. 範例影像 Rex.jpg



4. Rex.jpg 檔案內容 (16 進位表示) : Rex.PDF

5. PSPad

Week 13: Huffman Coding

本週可課程主題介紹霍夫曼編碼法 (Huffman Coding):

1. 維基百科條目: 霍夫曼編碼 (Huffman Coding)

2.

2012年11月23日 星期五

Week 11: 色彩模型 (2)

今天講解的程式碼有:

1. Mixture Model
2. 以 2D 平面影像顯示 3D 色彩模型, 包含 RGB 與 YUV 色彩模型



展示的程式效果(未詳細講解程式碼, 下週講解程式碼)

1. 彩色轉灰階 Y , 再轉成半色調 halftone 黑白影像 (用Photoshop示範)
2. 將彩色影像轉成單色調影像

講解的理論有:

1. 顏色的專業術語: 亮度, 濃度(飽和度), 色調 , 即 HSI 色彩模型
2. 使用 C++ Builder 的 ColorDialog 來講解顏色展示與選擇
3. 亮度 Y 與色差 YV, 即 YUV 色彩模型

延伸閱讀:

1. 使用整數資料形態運算完成 RGB 與 YUV 色彩模型之轉換:
MSDN: Converting Between YUV and RGB

2. 印象派:
Claude Monet's famous painting Impression: Sunrise

2012年11月19日 星期一

Week 10: 色彩模型 (1)

1. 期中考檢討

2. RGB 色彩模型 ( RGB color model )

程式實作:

a. 三原色的混色



b. RGB 色彩方塊 (RGB Color Cube)

利用 256*256 大小之影像, 固定三個色彩之其中一個色彩, 然後利用迴圈,將所有顏色變化組合顯示於影像之中。







2. HSI 色彩模型

2012年11月1日 星期四

Week 8: 空間濾波器實作

1. 平滑空間濾波器

a. 平滑線性濾波器



b. 排序統計(非線性)濾波器



範例程式: Salt-and-Pepper Noise



實驗結果:


Waterlily 原圖 (512*512) format: bmp


使用範例程式 Salt-and-Pepper Noise 加入 6% 胡椒鹽雜訊!


使用 3*3 中值濾波器處理被加了 6% 胡椒鹽雜訊影像的結果。


使用範例程式 Salt-and-Pepper Noise 加入 10% 胡椒鹽雜訊!


使用 3*3 中值濾波器處理被加了 10% 胡椒鹽雜訊影像的結果。


2. 銳化空間濾波器









Homework 2: 空間濾波器實作

本次作業分成以下 3 部分:

a. 實作以下三類空間濾波器: 平滑化, 銳化, 中值濾波器。

b. 對不同圖片進行實驗。

c. 實驗結果討論

d. 心得

本作業繳交期限: 2012/11/15

2012年10月26日 星期五

Week 7: Photoshop Levels & Curve 實作

1. Photoshop CS5 Levels



a. C++ Builder 程式實作

首先, 使用 4 個 TEdit 元件來分別輸入 Input Levels 與 Output Levels 的最大值與最小值。然後在將 Input Levels 與 Output Levels 的對應函數圖形顯示出來。



b. 範例程式

2. Photoshop CS5 Curve



二次曲線 - 拋物線的方程式為 Y = a X^2 + b X + c
因為通過 (0, 0)
所以 c = 0

因為通過(255, 255)
所以 255 = 255*255 a + 255 b
等號兩邊同時除以 255 , 得到 1 = 255 a + b
所以 b = 1 - 255 a

方程式變成 Y = a X^2 + ( 1-255a) X

使用者輸入的點若是落在(x, y), 那麼, 就可以求出 a 的係數了!
a = (y-x)/(x^2-255x)

接著就可以用程式算出 b 係數!
b = 1 - 255 a

方程式就大功告成了!

a. C++ Builder 程式實作












b. 範例程式

3. 影像放大與縮小之概念介紹

4. 影像旋轉之概念介紹

2012年10月19日 星期五

Week 6: Photoshop Levels & Curve

1. Photoshop Levels



2. Photoshop Curve



3. Spatial Filtering

2012年10月12日 星期五

Week 5: Image 色彩統計資訊

1. 直方圖 (histogram)

From Image Processing Class



Sample Program - Histogram

Week 4: 範例程式講解

1. TBitmap::ScanLine

Byte *bPtrImageRow;
bPtrImageRow1 = (Byte *)Image1->Picture->Bitmap->ScanLine[j];
Image1->Refresh();


2. 範例程式講解

 a. 負片

 b. R、G、B 單色影像

 c. 灰階影像