顯示具有 sample program 標籤的文章。 顯示所有文章
顯示具有 sample program 標籤的文章。 顯示所有文章

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. 影像旋轉之概念介紹

2010年11月26日 星期五

Week 11: Histogram 直方圖統計

1. 作業一的延伸討論:

Binary Image 演算法與 範例程式 講解

2. Region Growing 演算法與 範例程式 講解

3. Histogram 直方圖統計 (作業二: Part 1)

From Image Processing Class

2010年11月8日 星期一

Week 8: 量化程式之實作與討論 (作業一)

作業一:

繳交期限: Week 8 (2010/11/05)

將一張彩色影像轉成灰階影像後, 再對灰階影像進行色彩量化處理, 分別用 128 色, 64 色, 32 色, 16 色, 8 色, 4 色, 2 色(黑白影像) 顯示。

 原圖: 彩色影像

  

 灰階影像: 256 色階
  

 灰階影像: 128 色階

  

 灰階影像: 64 色階

  

 灰階影像: 32 色階

  

 灰階影像: 16 色階

  

 灰階影像: 8 色階

  

 灰階影像: 4 色階

  

 黑白影像(binary image)

  
 
 延伸討論:

 1. 由於同學要求: "希望老師可以指導如何使用內建的物件直接達成PixelFormat:= pf2bit 的方法" , 因此, 我特地將如何直接將一張 PixelFormat = pf24bit 的彩色影像, 直接轉換成一張新的 PixelFormat = pf1bit 的黑白影像的範例程式提供給同學參考。

  範例程式: DIP2010-SP-BinaryImage.c

  

  同學們可以使用滑鼠右鍵, 看影像檔案的基本資訊, 如下圖示,

  

  就會看到這張黑白影像 BinaryModeBird.bmp 的檔案大小是 9.77 KB (10,006 bytes),

  

  而原先的黑白檔案 BinaryBird.bmp, 其實只有顯示出黑白二色, 儲存格式還是 PixelFormat = pf8bit 的灰階影像, 檔案大小是 78.74 KB (80,630 bytes), 如下圖所示。

  
 

2009年12月12日 星期六

範例程式: 直方圖均化 (Histogram Equalization)

直方圖均化(Histogram Equalization)範例程式: IPC-2009F-SP06.txt

灰階影像之實驗結果:



課本圖 3.20(a), 這張影像的就是課本圖 3.16, 圖片不但偏暗, 而且對比度很低。



執行直方圖均化程式後的結果, 對比度增強了。



課本圖 3.20(b), 這張影像的就是課本圖 3.16, 圖片偏亮, 但對比度也很低。



執行直方圖均化程式後的結果, 對比度增強了。

2009年12月11日 星期五

範例程式: 直方圖統計

直方圖統計(Histogram)範例程式: IPC-2009F-SP05.txt

實驗結果:

From Image Processing Class

原圖 WaterLily.bmp (512*512)


直方圖統計

2009年12月1日 星期二

範例程式: 對比度擴展(Contrast Stretching)

對比度擴展(Contrast Stretching)範例程式: IPC-2009F-SP04.txt



課本圖 3.10 (b) 低對比度影像



範例程式執行結果: 對比自動增強了 !
圖 3.10 (c)

範例程式執行結果: 彩色影像的實驗,



此低對比度影像是利用 Photoshop CS 調出來的!



經過範例程式的自動計算與處理, 恢復成高對比度的影像!

2009年11月30日 星期一

範例程式: 影像旋轉

影像旋轉範例程式 IPC-2009F-SP02.txt

範例程式執行結果: 逆時針旋轉 30 度



範例程式: 負片

負片範例程式 IPC-2009F-SP01.txt

範例程式中, 用了一個新的 Property, TBitmap::ScanLine, 在 C++ Builder 的影像元件 TImage 中, 包含了一個 TPicture 的元件, TPicture 又包含了一個 TBitmap 的元件, TBitmap::ScanLine 這個 Property 則是存放了每一行影像色彩存放在電腦記憶體中的起始位置, 因此, 有了這個記憶體位置, 就可以對影像內容進行存取(修改/讀取)。

另外, 這個程式不只可以處理彩色影像, 灰階影像也可以自動分辨與處理, 但必須要新增一個灰階調色盤, ..

灰階影像的實驗結果





彩色影像的實驗結果




 

範例程式: 彩色影像轉成灰階影像

   IPC-2009F-SP03.txt

實驗結果: