------------------------------------------------------------------------------------------------------------------------------------
hw3-2
在拍攝3D圖的左右眼圖片時 實際執行之後發現要有點小技巧
我用的素材是我的遊戲主機手把
一開始在拍照時因為水平移動之後的斜角拍攝的角度太大
造成了兩張圖片看起角度差異過大 完全變得不一樣了
在拍攝近距離的物體其實只要稍微斜一點點的角度就行了
以下是我拍攝的左右眼圖片
左眼
hw3-3
再將兩張圖合成時我是使用Photoshop這個軟體來進行
在拍完照片時我將左眼圖片的色版只留下紅色的色版的圖片
將藍色及綠色色版全部塗黑 結果入下

接下來的重點部分就是右眼了
第一次嘗試時 我是將紅色及綠色色版給塗黑
也就是只留下藍色的色版
會有如下圖的結果

之後再將兩張左右眼的圖疊在一起
也就是將圖層的效果轉換成"濾色"(圖中紅框)

所以之後我改變了色版的處理
左眼的部分依舊只保留紅色色版
而右眼的部分則是有所變更
原本是只留下藍色色版
現在改成留下藍色及綠色色版 也就是只把紅色色版給遮掉
會變成下圖的結果



在用Photoshop做完之後 原理就差不多懂了
開始寫BCB程式時還滿順利的
在將圖片讀入以後我取色彩時就跟用Photoshop一樣
red1 = GetRValue(Image1->Canvas->Pixels[i][j]);
green1= (GetGValue(Image1->Canvas->Pixels[i][j]))*0;
blue1= (GetBValue(Image1->Canvas->Pixels[i][j]))*0;
Image1->Canvas->Pixels[i][j]= (TColor) RGB(red1,green1,blue1 );
一樣將左眼的圖片只取紅色的色彩值 其他都設定為0
在將圖片重新上色給左眼圖片

右眼也是一樣
只取了綠色和藍色的色彩值 而紅色的色彩值存為0
red2 = (GetRValue(Image2->Canvas->Pixels[i][j]))*0;
green2 = GetGValue(Image2->Canvas->Pixels[i][j]);
blue2 = GetBValue(Image2->Canvas->Pixels[i][j]);
Image2->Canvas->Pixels[i][j]= (TColor) RGB(red2,green2,blue2 );
取到的圖則是會變成青色的

之後再按合成的按鈕
Image1->Visible = false;
Image2->Visible = false;
我是先將兩張左右眼圖片給隱藏
然後在show出合成完的圖片
red3 = GetRValue(Image1->Canvas->Pixels[i][j]);
green3 = GetGValue(Image2->Canvas->Pixels[i][j]);
blue3 = GetBValue(Image2->Canvas->Pixels[i][j]);
Image3->Canvas->Pixels[i][j]= (TColor) RGB(red3,green3,blue3);

------------------------------------------------------------------------------------------------------------------------------------
HW3-4
我認為當初失敗的原因可能是在處理右眼圖的時候
將綠色的色版也遮蓋掉了
造成了將兩張圖合成之後 整個圖片的呈現時 綠色這個元素完全的被去除掉了
才會造成圖片的顏色很詭異
而之後會成功的原因是因為在右眼圖片時只遮掉紅色的色版
所以綠色的色版得以保留住 所以最終在顏色的呈現上才得以完整表示
而下面的圖片是我自己將綠色的色版保留色左眼的圖片
此時雖然右眼的圖片是完整的藍色的圖片
但是左眼變成了黃色
合成之後變得是黃藍相間的圖片
也許要用黃藍玻璃紙才能看見 但是黃色本色的色彩較為明亮
相較於紅色 也許呈現出的3D立體效果會不如紅藍3D圖的明顯

在做出來之後自己用紅藍眼鏡看時還真的是滿感動的
仔細一看連鍵盤都有3D的感覺 這到是令我感到滿驚訝的
原本只是想讓手把呈現出來 沒線到意外的連鍵盤都有3D的效果
可惜的是滑鼠看起來還是沒變 可能是因為太黑了吧...
造成看不出遠近的效果
這次做的3D圖片收穫還滿多的 真的是很好玩!
沒有留言:
張貼留言