2017年1月16日 星期一

03363620 邱顯耕 HW 06

這份作業主要分為兩大部分,分別為YUV以及RGB的色彩模型。所謂YUV即為YLuminanceLuma)明亮度、UV則代表色度、濃度ChrominanceChroma

第一部分YUV色彩模型就是讓使用者分別設定好Y值(明亮度),透過設定好的Y值就會出現對應的UV panel,如此一來選好YUV的值對圖片進行調整,如下圖所示。

Y=110

選擇U=138V=92

原圖

調整之後


心得 :  這種效果就跟我小時候透過玻璃紙看外面的事物一樣,長大則是用手機的修圖APPPhotoShop來模擬,現在能透過電腦來寫程式並且自己設定每個參數(YUV值)產生不同效果。在程式實作上面主要分為兩大步驟。


第一個是將原來的圖片轉為 灰階效果,就是每個pixelRGB值分別乘以0.1140.587以及0.299並加總在Asign回該pixelRGB值。
第二是將投影片中的公式帶入http://www.slideshare.net/YKLee3434/color-models-42764103
透過已有的YUV值轉為新的RGB值就會產生這種效果。
 在我看過投影片之後,對於實數空間的矩陣轉換公式其實有點好奇,便參考了這個網頁http://b8807053.pixnet.net/blog/post/3612640-%E6%B7%B1%E5%85%A5%E5%AD%B8%E7%BF%92yuv%E8%89%B2%E5%BD%A9%E6%A8%A1%E5%9E%8B
想進一步了解這公式的推導過程,只是到後面如何轉成整數這邊有點不大了解。

第二部分RGB色彩模型因為是三個維度,因此固定其中一個值 ( 0 ~ 255 之間 ),並觀察另外兩個值 ( 255*255 ) 種顯示在panel上的變化。作法非常簡單只要將選定的值給每個pixelBRG其中一個,並顯示在三個panel上就可以了。簡單來說就是觀察RGB色彩模型的頗面圖。

例如:將值固定為143表示分別在三度空間上從xyz ( RGB ) 上從143切下去觀看其頗面圖。

R=143BG顯示如下 :


B=143RG顯示如下:


G=143RB顯示如下:



2017年1月15日 星期日

02360831_陳文逸_作業5(補交)

這次的作業是濾波器,在課堂上交我們寫的是平滑濾波器以及銳化濾波器。
而作業要做的是胡椒鹽雜訊以及中值濾波器。

(因為RAD Studio 10.1 Berlin到期了所以沒有辦法截程式的圖片)

濾波器就像是一個遮罩,處理選取範圍內的影像,平滑濾波器就是將影像的像素之間處理得更接近,讓影像變得滑順一些。
而銳化濾波器就是相反,是讓影像的細節變得較為清楚。

在寫胡椒鹽雜訊的程式之前我一直不知道該怎麼寫,所以最後作業沒有完成。
於是今天上網查了一下,大概有了一點的概念了,我覺得程式碼應該會是這樣子:

int SaltandPepper = (int) iImageWidth * 0.05;//5%的雜訊
for (j = 0;j < iImageHeight; j++)
{
bPtrImageRow = (Byte *)Image1 -> Picture -> Bitmap ->ScanLine[j] ;
for (i = 0; i < SaltandPepper; i++)
{
                  int Random = rand() % iImageWidth;

                  bPtrlImageRow[Random * 3 ] = 255;
         bPtrlImageRow[Random * 3 + 1] = 255;
         bPtrlImageRow[Random * 3 + 2] = 255;
                 }
}
我想這樣應該可以製作出5%的胡椒鹽雜訊的圖片了。

中值濾波器與前面的平滑與銳化濾波器不同的是,中值濾波器需要排序。
排序之後再將中位數的值取出來來當作色彩值。
所以才有辦法將胡椒鹽雜訊給清除掉,但是當胡椒鹽雜訊的程度過高時,能夠濾掉的雜訊就有限。

02360635 鄭瑞銘 Homework3

色階與曲線調整

色階與曲線調整的操作介面
色階調整使用四個文字輸入框
曲線調整則是點擊白色畫布的任一處


色階調整

圖片的原色彩值(Input)和修改後的色彩值(Output)之間有著這樣的等式:

(Output - Output Min) / (Output Max - Output Min) = (Input - Input Min) / (Input Max - Input Min)


將等式左邊留下Output之後得到此公式:

色階調整的參考公式

接下來的實驗會用:
(Input Min, Input Max, Output Min, Output Max)來表示測試時輸入的數值


從式子來看,Input Max - Input Min會使Output產生無限大的數值,
實際測試 (0, 0, 0, 255) 之後程式也跑出警告視窗告訴我除數不得為零



(50, 200, 0, 255)的組合:
(50, 200, 0, 255)對照(0, 255, 0, 255)

因為(200 - 50) < (255 - 0),
除數變小的關係,使得圖片整體變亮


(0, 255, 50, 200)的組合:
(0, 255, 50, 200)對照(0, 255, 0, 255)

因為(200 - 50) < (255 - 0),
乘數變小,使得圖片較為黯淡


(0, 255, 255, 0)的組合:
(0, 255, 255, 0)對照(0, 255, 0, 255)

試著讓(Output Max - Output Min) < 0、(Input Max - Input Min) > 0,結果一整個負片的感覺



曲線調整

由一條經過(0, 0)、(255, 255)和自定義的(x, y)的二次曲線,X軸=Input、Y軸=Output,來調整色彩值。
這部分在撰寫程式時卡了很久,點擊畫布時畫布和圖片都沒反應,最後發現我定義的(x, y)是整數型態,而計算過程多使用浮點數,所以將(x, y)強制轉型成浮點數之後終於能對圖片做色彩調整。

試驗:


(y遠大於x)、(y大於x)、(x=y)
(x大於y)、(x遠大於y)


視覺效果來說我覺得曲線調整比色階調整來得舒適。

2017年1月14日 星期六

02360635 鄭瑞銘 Homework1

影像處理的相關應用程式介紹

使用軟體:Easy Paint Tool SAI

產品LOGO

這款軟體是我從友人那邊得知而來,一款適合電繪新手使用的繪圖軟體,硬要說的話它就像功能強化版的小畫家。
對我這個電繪菜鳥來說它有許多直覺性且簡易操作的介面,像是畫面放大和縮小可以用滑鼠滾輪來操作,方向鍵可以將畫面上下左右移動……
嚴格上它是繪圖軟體,相較於專門處理相片的應用程式來說,SAI撇開了畫筆工具之後能對相片的處理並不多

所以我主要實驗它的濾鏡功能。

操作介面&濾鏡功能




濾鏡→色相/飽和度


色相(可調整範圍:-100~+100)
(實驗數值:-50、0、+50)


飽和度(可調整範圍:-100~+100)
(實驗數值:-100、0、+100)


明度(可調整範圍:-100~+100)
(實驗數值:-50、0、+50)



濾鏡→亮度/對比度


亮度(可調整範圍:-100~+100)
(實驗數值:-50、0、+50)


對比度(可調整範圍:-100~+100)
(實驗數值:-50、0、+50)


顏色濃度(可調整範圍:-100~+100)
(實驗數值:-100、0、+100)

現在用起來,明度和亮度、飽和度和顏色濃度,這兩組的效果滿相近的

然後色相的功能自己用SAI內的其他功能觀察了色彩變化,似乎是在0~256的範圍內,照著R、G、B的順序對單一色彩值調整。

個人比較好奇的是對比度的定義,數值調到-100的時候整張圖變灰色、+100則是接近全黑,不太明白對比度想要表達什麼。

03360625 余兆為 期末回顧

期末回顧

經過這學期影像處理的課程,讓我了解到一些基本處理影像的方式

其中讓我最印象深刻的是

一些早期的黑白影片

經過影像處理後

轉換成真實的彩色影片

這其中遇到的是作業6的色彩模型 YUV模型

早期的影片只有Y值(灰階值)

所以在轉換成彩色影片時

只要套上UV值

便可以得到結果

但是,困難的地方

我們要如何知道影片中的物件為何

例如:天上的雲的位子、有多大、雲的形狀...等等

這些是非常困難的



之前看到一篇有關影像處理的文章

常常監視器拍到的車牌都是模糊的

例如下面這張照片就看不清楚車牌為何


我們只要使用photoshop中的de-interlance (去交錯),就可以得到清楚的影像



影像處理的應用在生活上隨處可見,可以說是一項非常重要的技術,每個人拍照時一定都會使用,使用相機的特效,其實這就是濾鏡上的應用,也常使用在刑事案件的影像辨識上。
我們所學的只是一些很簡單的原理,往後還有很多影像處理上的演算法可以鑽研、改進。

前陣子在靠北工程師看到這張圖片
那時候正好在寫影像處理作業
蠻好笑的xD








03360625 余兆為 HW06

色彩模型

我們常見的色彩模型有RGB、YUV、CMYK

RGB色彩模型:
顧名思義,由紅色、綠色、藍色所組成,三個數值皆為0─255,由於RGB是色光,所以會越加越亮,當3個顏色的數直都為255時就會呈現白色,反之,都是0時則為黑色。
RGB最常用在顯示系統,例如:螢幕,因此我們在做影響處理作業時,所使用的皆是RGB色彩模型。

YUV色彩模型:
Y表示亮度,U和V則是彩度、濃度。
早期的黑白電視,只有Y值,也就是灰階值,到了彩色電視時,只要忽略UV值,那麼剩下的Y值,就會跟黑白電視的訊號相同,這樣就解決了相容的問題,YUV最大的優點為佔用極少的頻寬。
那為什麼設計彩色電視時,不使用RGB色彩模型呢?
那是因為使用RGB色彩模型,所佔用的頻寬,為黑白頻寬的3倍,所以後來才採用YUV色彩模型製做彩色電視。

CMYK
色彩模型:
C為青色 、M為洋紅色 、Y為黃色、 K為 黑色,模擬印刷時所需的墨水,使用顏料的3原色加上黑色,一般使用在印刷或是大圖輸出,CMYK的數值為0─100,顏色的疊加是越加越深,所以稱之為減色法,這裡剛好跟前面提到的RGB色彩模型相反。由於CMYK的色彩空間較RBG小,所以在印刷時,跟螢幕上的圖片會有色差。
至於,為什麼印刷要使用CMYK色彩模型呢?
從螢幕上的RBG色測模型要轉換成CMYK色彩模型,須經過複雜的轉換,所以如果是用RGB色彩模型來儲存圖片,那如果每次要印刷時,就必須先轉換一次,如果使用不同設備,轉換時就會有所誤差,因此在印刷時皆使用CMYK色彩模型。

接著讓我們來看YUV色彩模型的實做:

這是原圖

首先,將我們拿到的影像轉成灰階
這麼一來,我們就會得到只有Y值的影像
就會跟早期的黑白電視一樣



接著我們就可以加上UV值,將影像轉換成自己想要的顏色



經過這次作業後,瞭解到RGB跟YUV的轉換,在做這個作業的時候,找尋RGB轉換成YUV的方法,發現YUV色彩模型中又有不同的格式,分別有:YUV444、YUV422、YUV411、YV12。大多數的格式,平均每像素皆小於24位元,而我們這次所使用的是YUV444格式,總共有24bits,這個格式為最逼真的模式,但是因此我們得到的影像所佔的空間會比較大。