2011年12月24日 星期六

HW3



程式介面



載入一張.bmp的圖檔



將圖片轉成灰階只保留亮度(Y)



在左邊的YUV色彩模型中,隨機 取一種
顏色將U和V的色彩值替換 。




HSI色彩模型介面



I = 0.5







I = 1





擷取網路上網站的圖片

心得一:YUV TO RGB




做第一個作業時,一直以為是要將RGB轉換成YUV,再將YUV轉換成RGB,當我轉換完後,發現顏色並沒有改變,才想說為什麼要將RGB轉過去又轉回來,但如果只是要做YUV轉換成RGB時,除了亮度Y=128,那U和V的色彩值我應該給多少? 這個問題困擾我很久。



一直到禮拜五問完老師之後才知道U和V的色彩值,是用當你點到YUV色彩模型上面的座標(i,j)來當作U和V的值,到這邊U和V值的問題解決了,但後面又碰到一個問題就是亮度的Y=128到底要給R還是G還是B? 結果三個都做了,一次保留R的亮度,一次保留G的亮度,最後保留B的亮度,三個圖片做出來很明顯地會不一樣,想說這樣就完成了,但演算法並不是這樣。



問完老師後才知道是要將原圖轉乘灰階時的所保留的亮度,給Y然後配上新的U和V的值去轉換成RGB 後才是我們所要的YUV色彩模型。






心得二:HSI TO RAB



在做第二個程式遇到的困難不外乎就是角度的問題,第一象限保持atan(y/x),第二象限是atan(y/x)+pi,第三象限是atan(y/x)+pi,第四象限是atan(y/x)+(2*pi),但剛開始做的我卻把pi的直放到atan(y/x)裡面做運算導致所算出來弧度,一直介於(-pi/2~pi/2)之間,一直以為這樣就把角度的問題搞定了(事實上是搞定了),但我卻將(0 < H < 120)......直接將這一段寫到程式裡面去,沒有改成(0 < H && H< 120) ,導致圖片一直被後面的色彩直覆蓋掉,出來的圖就只有(240~360)那一區域的顏色,一直到老師幫我檢查時,才發現@@。而最後做出來的圖片中間看起來會有三個比較暗得圈圈,我試者把I的值條大,而黑色的圈也漸漸消失了,但是做出來得圖片還是沒有辦法像網路上的一樣,能夠使顏色與顏色之間的分隔很明顯,即使用了網路上所提供的公式來做還是沒有辦法。



H=0



R = I + 2IS



G = I - IS



B = I - IS.



If 0 < H < 120, then



R = I + IS*cos(H)/cos(60-H)



G = I + IS*[1 - cos(H)/cos(60-H)]



B = I - IS.If H = 120,



then the red, green, and blue values are



R = I - IS



G = I + 2IS



B = I - IS.



If 120 < H < 240, then



R = I - IS



G = I + IS*cos(H-120)/cos(180-H)



B = I + IS*[1 - cos(H-120)/cos(180-H)].



If H = 240 then



R = I - IS



G = I - IS



B = I + 2IS.



And if 240 < H < 360, we have



R = I + IS*[1 - cos(H-240)/cos(300-H)]



G = I - IS



B = I + IS*cos(H-240)/cos(300-H).



網站:http://www.had2know.com/technology/hsi-rgb-color-converter-equations.html




沒有留言:

張貼留言