影像處理這門課當初以為是像圖像設計一樣用利用軟體修改影像,結果選到才知道這門課是要我們利用BCB軟體自己做出可以修改影像的程式。
開學前幾周上的內容很簡單,因為在介紹一些BCB物件,那些東西大部分都在二年級就學過了,不過有些物件的用法還是會忘掉。接著開始介紹Histogram(直方圖)可以看出一張影像在RGB分部的狀況,也可以把他做成累計直方圖。Levels和Curve這兩個是Photoshop裡的功能,剛開始聽到我們也能自己用程式打出Photoshop裡的功能感覺很酷,但學起來有點吃力,必須要先懂得如何畫線,不過這很簡單,還要懂Input與Output之間所做的動作,在畫曲線前還要先計算出曲線的函數,將函數代入就可以畫出曲線,執行出來的結果就是對比的強烈,這是我第一個學會用程式打出Photoshop裡的功能。
接著介紹Filter(濾波器),剛開始也不懂濾波器要幹嘛,上完才知道他可以減少影像中的雜訊,所以我們要做一張有雜訊的影像,在Photoshop裡的功能好像叫做Noise我們把他叫做胡椒鹽,接著利用中值濾波器將周圍的9個像素做排序選擇中位數做像素值,這樣我們就可以把雜訊(黑點與白點)去除掉。除了介紹濾波器之外,還有Sharpen(銳化), 他可以強調影像的效果,在不同顏色的交界感覺會有白色的框。(Blur)平滑化,給與周圍相同或不同的權重值,將影像做平滑化處理,讓影像看起來較模糊。
再來就是3D,我想大家都比較喜歡這部分的內容,因為需要實作程式比較少,幾行就出來了,而且還是自己製作3D影像,但是效果要很好利用一台相機分別拍出左右眼是很難的,當初以為是紙有拍出一張影相接著複製作影相位移就好,想的太美好了。
最後是Color model(色彩模型)和YUV,色彩模型比較簡單,就是固定某兩個色彩值,而另一個色彩值去做變動,YUV是要將RGB的值轉換成YUV的值,這部分比較難,我花了一點時間去打程式,執行出來的結果好幾種,最後還是執行出來正確的結果,也學到了很多。
有一個內容我們沒有做出來,就是魔術棒的內容,當初就真的覺得這個程式和老師說的老鼠走迷宮很像,但我發現要考慮的東西還有點多,所以一直做不出來。
修完這學期的影像處理我覺得重要的是了解做這個功能是在改變影像的什麼,然後要動手打程式,不管執行出來的結果是怎樣都要盡量去試,才會學到很多。
2014年1月3日 星期五
HW5
第五次作業是色彩模型的實作
色彩模型
分別給定B、G和R,下圖為給定BGR為0的值,左邊為BG的混合,中間為BR的混合,右圖則為GR的混合。剛開始都為0,所以每張影像的左上角都為黑色。
下圖為當RGB的值設為255(最大)時所呈現得影像。最後的點都為255,所以每張影像的右下角都為白色。
程式碼:
//最左邊的影像為例
for(j=0 ; j<iImageHeight ; j++)
{
bPtrImageRow = (Byte*)Image1->Picture->Bitmap->ScanLine[j];
for(i=0 ; i<iImageWidth ; i++)
{
bPtrImageRow[3*i] = i;
bPtrImageRow[3*i+1] = j;
bPtrImageRow[3*i+2] = ScrollBar1->Position; //紅色值
}
}
================================================================灰階影像
此次是以這影像作範例
下圖為彩色影像轉換成灰階影像的實作
程式碼:
for(j=0;j<Image5->Picture->Height;j++)
{
bPtrImageRow1 = (Byte *)Image5->Picture->Bitmap->ScanLine[j];
bPtrImageRow2 = (Byte *)Image6->Picture->Bitmap->ScanLine[j];
for(i=0;i<Image5->Picture->Width;i++)
{
ib = bPtrImageRow1[i*3]; //B的值
ig = bPtrImageRow1[i*3+1]; //G的值
ir = bPtrImageRow1[i*3+2]; //R的值
// Y = ( 66 * R + 129 * G + 25 * B + 128 ) >> 8 + 16
bPtrImageRow2[i*3] = (66*ir+129*ig+25*ib+128)>>8+16;
}
}
================================================================
YUV
================================================================
這次的作業最簡單的部分是色彩模型的實作,因為只要一個色彩會做另外兩個的彩也會,該開始還不太懂要如何下手,老師一指點想一下才發現其實不難,接這灰階影像要搞懂RGB的值乘上多少會變成灰階值,接著計算三個色彩的值帶入公式後,就可以完成灰階影像。還有我覺得這次的作業有比前幾次難上許多,不過老師指點,同學討論還是可以完成這次作業的。
2013年12月25日 星期三
HW4
這次的作業是3D立體影像攝影與程式實作
實作方法
首先,找好目標拿出手機或相機拍攝,在左眼的位置和右眼的位置各拍一張,再來標記好左眼與右眼的相片,接著開始打程式。
將左眼和右眼的影像輸入進去
左眼程式碼 :
if(OpenPictureDialog1->Execute())
{
Image12->Picture->LoadFromFile(OpenPictureDialog1->FileName);
iImageWidth = Image12->Picture->Width;
iImageHeight = Image12->Picture->Height;
}
右眼程式碼 :
if(OpenPictureDialog1->Execute())
{
Image13->Picture->LoadFromFile(OpenPictureDialog1->FileName);
iImageWidth = Image13->Picture->Width;
iImageHeight = Image13->Picture->Height;
}
實作方法
首先,找好目標拿出手機或相機拍攝,在左眼的位置和右眼的位置各拍一張,再來標記好左眼與右眼的相片,接著開始打程式。
將左眼和右眼的影像輸入進去
左眼程式碼 :
if(OpenPictureDialog1->Execute())
{
Image12->Picture->LoadFromFile(OpenPictureDialog1->FileName);
iImageWidth = Image12->Picture->Width;
iImageHeight = Image12->Picture->Height;
}
右眼程式碼 :
if(OpenPictureDialog1->Execute())
{
Image13->Picture->LoadFromFile(OpenPictureDialog1->FileName);
iImageWidth = Image13->Picture->Width;
iImageHeight = Image13->Picture->Height;
}
分別將左右眼的影像輸入後接著是將兩張影像合併
將左眼影像紅色的色採資訊複製到新影像,右眼影像藍色和綠色的色彩資訊複製到新影像中。
程式碼 :
for(j=0;j<Image12->Picture->Height;j++)
{
bPtrImageRow1 = (Byte *)Image12->Picture->Bitmap->ScanLine[j];
bPtrImageRow2 = (Byte *)Image13->Picture->Bitmap->ScanLine[j];
bPtrImageRow3 = (Byte *)Image14->Picture->Bitmap->ScanLine[j];
for(i=0;i<Image12->Picture->Width;i++)
{
bPtrImageRow3[i*3] = bPtrImageRow1[i*3];
bPtrImageRow3[i*3+1] = bPtrImageRow1[i*3+1];
bPtrImageRow3[i*3+2] = bPtrImageRow2[i*3+2];
}
}
最後將影像存檔下來
if(SavePictureDialog1->Execute())
{
Image14->Picture->SaveToFile(SavePictureDialog1->FileName);
}
完成的3D影像
這張是原本製作的3D圖,因為效果不是很好,所以重新製作了一張為上面幾張圖
================================================================
心得
做完之後發現我應該要把三個東西放在不同的位置,不應該是在同一個平行上,這樣看出來的結果就不太不顯。
其實一台相機分別拍攝出左眼影像和右眼影像並不難,但在我們做兩張影像合成完時,拿起3D眼鏡看才發現頭暈暈,做出來的結果不是很好,更何況是將一般的影片拍成3D影片,很開心的是我學會如何自己製作3D影像,步驟很簡單只是技術不好而已。
2013年12月3日 星期二
HW3
這次的作業是實作空間濾波器,分別是平滑化(模糊化Blur) 、銳化(Sharpen)和中值濾波器(Median Filter)
主要程式碼
還有讓影像更銳利的做法就是將周圍(九宮格)權重值給予-1,而中心點權重值為9(如下圖顯示)。
平滑化(模糊化Blur)
主要是將影像中不相干的細節減少,將影像中相鄰(九宮格)的像素值給予權重1之後加起來除以9放回原來的像素值(如下圖顯示),要注意的是影像四周相鄰的像素值不是九宮格,所以在做迴圈運算的時候要將影像的寬和高減一。
執行結果,Original Image與 New Image 的差異,New Image 看起來較模糊,尤其是花蕊的部分,這是針對影像四周做處理。
主要程式碼
for(i=1;i<iImageWidth-1;i++)
{
for(k=0;k<3;k++)
{
//9宮格內得數值加起來放入sum
sum=bPtrImageRow0[(i-1)*3+k]+bPtrImageRow0[i*3+k]+bPtrImageRow0[(i+1)*3+k]
+bPtrImageRow1[(i-1)*3+k]+bPtrImageRow1[i*3+k]+bPtrImageRow1[(i+1)*3+k]
+bPtrImageRow2[(i-1)*3+k]+bPtrImageRow2[i*3+k]+bPtrImageRow2[(i+1)*3+k];
//將sum平均做/9動作
bPtrResultImageRow[i*3+k]=(unsigned char)(sum/9);
}
}
也有些人認為九宮格內,重要的像素點為前後左右四個點,所以給予較高的權重值,將最上圖黃色部分權重值增加為2,所以中心點權重值就為4,加總之後要除以16。以下為給予較高權重值的執行結果。
主要程式碼
for(i=1;i<iImageWidth-1;i++)
{
for(k=0;k<3;k++)
{
//認為前後左右的參考價值比斜對角的還有價值,所以前後左右權重為2,中心點為4,相加放入 //sum
sum=bPtrImageRow0[(i-1)*3+k]+2*bPtrImageRow0[i*3+k]+bPtrImageRow0[(i+1)*3+k]
+2*bPtrImageRow1[(i-1)*3+k]+4*bPtrImageRow1[i*3+k]+2*bPtrImageRow1[(i+1)*3+k]
+bPtrImageRow2[(i-1)*3+k]+2*bPtrImageRow2[i*3+k]+bPtrImageRow2[(i+1)*3+k];
//權重算出來為16,所以sum/16做平均動作
bPtrResultImageRow[i*3+k]=(unsigned char)(sum/16);
}
}
================================================================
銳化(Sharpen)
主要在凸顯強度上的變化,給予前後左右權重值為 -1,而中心點權重值為5(如下圖顯示),然後加總。要注意的是像素值最大為255最小為0,所以我們必須要設定高於255像素值為255低於0像素值為0。
主要程式碼
for(i=1;i<iImageWidth-1;i++)
{
for(k=0;k<3;k++)
{
//給予前後左右-1的權重,中心點為5的權重,相加放入sum
sum=-1*bPtrImageRow0[i*3+k]
-bPtrImageRow1[(i-1)*3+k]+5*bPtrImageRow1[i*3+k]-bPtrImageRow1[(i+1)*3+k]
-bPtrImageRow2[i*3+k];
//計算sum是否超過255,如果超過要=255,如果小於0,要=0
if(sum>255)
sum=255;
if(sum<0)
sum=0;
bPtrResultImageRow[i*3+k]=(unsigned char)(sum);
}
}
執行結果,在不同顏色的交界處感覺有白色的邊框,讓整個影像看起來比較銳利。
還有讓影像更銳利的做法就是將周圍(九宮格)權重值給予-1,而中心點權重值為9(如下圖顯示)。
執行結果,因為加上對角-1的權重值,所以整個影像看起來更為銳利。
主要程式碼
for(i=1;i<iImageWidth-1;i++)
{
for(k=0;k<3;k++)
{
//認為9個點的權重為-1,而中心點權重為9,相放入sum
sum=-1*bPtrImageRow0[(i-1)*3+k]-bPtrImageRow0[i*3+k]-bPtrImageRow0[(i+1)*3+k]
-bPtrImageRow1[(i-1)*3+k]+9*bPtrImageRow1[i*3+k]-bPtrImageRow1[(i+1)*3+k]
-bPtrImageRow2[(i-1)*3+k]-bPtrImageRow0[i*3+k]-bPtrImageRow0[(i+1)*3+k];
//一樣判斷是否超過255或小於0
if(sum>255)
sum=255;
if(sum<0)
sum=0;
bPtrResultImageRow[i*3+k]=(unsigned char)(sum);
}
}
================================================================
胡椒塩(Pepper and Salt)
亂數產生0到100的數值,在影像中產生出黑點與白點。
以下為實作情況 :
上圖為開啟檔案所使用的影像
上圖為灑上胡椒鹽的影像,有黑點也有白點
主要程式碼
for (i=0; i<iImageWidth; i++)
{
//亂數產生0到100的變數
iRandomNumber = random(100);
//變數小於10,影像的像素值為黑色
if (iRandomNumber < 10)
{
bPtrImageRow[3*i] = 0;
bPtrImageRow[3*i+1] = 0;
bPtrImageRow[3*i+2] = 0;
}
//變數值小於20,影像的像素值為白色
else if (iRandomNumber < 20)
{
bPtrImageRow[3*i] = 255;
bPtrImageRow[3*i+1] = 255;
bPtrImageRow[3*i+2] = 255;
}
}
================================================================
中值濾波器(Median Filter)
濾波器主要內容就是消除影像雜訊,實作方法就是將周圍(九宮格)的像素值取出來後作排序,再將中間的值(第5個值)放回原像素點。
執行結果,原本影像要用花朵,因為執行的結果看不太出來,所以使用這張影像來做影像處理。
上個步驟是將影像灑上胡椒鹽,而濾波器這個步驟是將影像的雜訊去除掉。
{
bPtrImageRow0=(Byte *)Image7->Picture->Bitmap->ScanLine[j-1];
bPtrImageRow1=(Byte *)Image7->Picture->Bitmap->ScanLine[j];
bPtrImageRow2=(Byte *)Image7->Picture->Bitmap->ScanLine[j+1];
bPtrResultImageRow=(Byte *)Image8->Picture->Bitmap->ScanLine[j];
for(i=1;i<iImageWidth-1;i++)
{
ucNeighbors[0]=bPtrImageRow0[(i-1)*3];
ucNeighbors[1]=bPtrImageRow0[i*3];
ucNeighbors[2]=bPtrImageRow0[(i+1)*3];
ucNeighbors[3]=bPtrImageRow1[(i-1)*3];
ucNeighbors[4]=bPtrImageRow1[i*3];
ucNeighbors[5]=bPtrImageRow1[(i+1)*3];
ucNeighbors[6]=bPtrImageRow2[(i-1)*3];
ucNeighbors[7]=bPtrImageRow2[i*3];
ucNeighbors[8]=bPtrImageRow2[(i+1)*3];
ucMedian=MedianFinding(ucNeighbors);
bPtrResultImageRow[i*3]=ucMedian;
ucNeighbors[0]=bPtrImageRow0[(i-1)*3+1];
ucNeighbors[1]=bPtrImageRow0[i*3+1];
ucNeighbors[2]=bPtrImageRow0[(i+1)*3+1];
ucNeighbors[3]=bPtrImageRow1[(i-1)*3+1];
ucNeighbors[4]=bPtrImageRow1[i*3+1];
ucNeighbors[5]=bPtrImageRow1[(i+1)*3+1];
ucNeighbors[6]=bPtrImageRow2[(i-1)*3+1];
ucNeighbors[7]=bPtrImageRow2[i*3+1];
ucNeighbors[8]=bPtrImageRow2[(i+1)*3+1];
ucMedian=MedianFinding(ucNeighbors);
bPtrResultImageRow[i*3+1]=ucMedian;
}
}
================================================================
心得
這次作業都是利用二為陣列去做處理,第一部分的作業,我有使用兩種權重去處理影像,一種為像素值的八方權重為1,另一種為四方權重為2對角的權重為1,但出來的結果似乎差異不大。第二部分的銳化執行出來的結果可以很明顯的知道與原來的影像不同,我一樣也使用兩種權重值去處理銳化的部分,兩種結果差很多,不像影像的平滑化處理。最後是中值濾波器,以這次的作業來說是比較困難的部分,因為要找出像素點的九宮格去做大小排列,選出中間值當此影像像素點的值。
執行結果,原本影像要用花朵,因為執行的結果看不太出來,所以使用這張影像來做影像處理。
上個步驟是將影像灑上胡椒鹽,而濾波器這個步驟是將影像的雜訊去除掉。
主要程式碼
for(j=1;j<iImageHeight-1;j++){
bPtrImageRow0=(Byte *)Image7->Picture->Bitmap->ScanLine[j-1];
bPtrImageRow1=(Byte *)Image7->Picture->Bitmap->ScanLine[j];
bPtrImageRow2=(Byte *)Image7->Picture->Bitmap->ScanLine[j+1];
bPtrResultImageRow=(Byte *)Image8->Picture->Bitmap->ScanLine[j];
for(i=1;i<iImageWidth-1;i++)
{
ucNeighbors[0]=bPtrImageRow0[(i-1)*3];
ucNeighbors[1]=bPtrImageRow0[i*3];
ucNeighbors[2]=bPtrImageRow0[(i+1)*3];
ucNeighbors[3]=bPtrImageRow1[(i-1)*3];
ucNeighbors[4]=bPtrImageRow1[i*3];
ucNeighbors[5]=bPtrImageRow1[(i+1)*3];
ucNeighbors[6]=bPtrImageRow2[(i-1)*3];
ucNeighbors[7]=bPtrImageRow2[i*3];
ucNeighbors[8]=bPtrImageRow2[(i+1)*3];
ucMedian=MedianFinding(ucNeighbors);
bPtrResultImageRow[i*3]=ucMedian;
ucNeighbors[0]=bPtrImageRow0[(i-1)*3+1];
ucNeighbors[1]=bPtrImageRow0[i*3+1];
ucNeighbors[2]=bPtrImageRow0[(i+1)*3+1];
ucNeighbors[3]=bPtrImageRow1[(i-1)*3+1];
ucNeighbors[4]=bPtrImageRow1[i*3+1];
ucNeighbors[5]=bPtrImageRow1[(i+1)*3+1];
ucNeighbors[6]=bPtrImageRow2[(i-1)*3+1];
ucNeighbors[7]=bPtrImageRow2[i*3+1];
ucNeighbors[8]=bPtrImageRow2[(i+1)*3+1];
ucMedian=MedianFinding(ucNeighbors);
bPtrResultImageRow[i*3+1]=ucMedian;
}
}
================================================================
心得
這次作業都是利用二為陣列去做處理,第一部分的作業,我有使用兩種權重去處理影像,一種為像素值的八方權重為1,另一種為四方權重為2對角的權重為1,但出來的結果似乎差異不大。第二部分的銳化執行出來的結果可以很明顯的知道與原來的影像不同,我一樣也使用兩種權重值去處理銳化的部分,兩種結果差很多,不像影像的平滑化處理。最後是中值濾波器,以這次的作業來說是比較困難的部分,因為要找出像素點的九宮格去做大小排列,選出中間值當此影像像素點的值。
2013年11月15日 星期五
HW2
這次的作業有三個小部分 : Levels、Curve 和 Histogram
Levels 色階
此功能可以處理影像的對比亮度。輸入四個整數值 ( InputMin . InputMax . OutputMin . OutputMax ) ,X 軸為 Input 的值,Y 軸為Output 的值,當值有變動時,就要重新畫圖以及計算。上圖中的 Original Image 為 Load 進來的圖,當 Original Image Load 進來時 New Image 也要跟著 Load 進來,不然當要執行 Level 計算時會出現 Error,因為通常 bitmap 元件在還沒放進影像時,是沒有配置記憶體的,所以會出現如下圖所示告知使用者 scan line 超出範圍。
主要程式碼
for (i=0;i<256;i++)
{
if ( i <= iInputMin)
iLevelsTable[i] = iOutputMin;
else if ( i >= iInputMax )
iLevelsTable[i] = iOutputMax;
else
{
iInputInterval = iInputMax - iInputMin;
iOutputInterval = iOutputMax - iOutputMin;
iLevelsTable[i] = iOutputMin + (int)((float) iOutputInterval * (i - iInputMin) / iInputInterval + 0.5) ;
}
}
================================================================
Curve 曲線
此功能和 Level很像,一樣是在處理影像的對比亮度 ,不同的地方是 Level 是給予一定的範圍,利用 InputMin . InputMax . OutputMin 和 OutputMax 計算並畫出 Level 的圖;而 Curve 則是在圖上點一點,並利用曲線公式 (y=ax^2+bx+c) 將圖上的一點帶入並連接計算出 Curve 所執行出來的結果。上圖中的 Original Image 一樣為 Load 進來的,Load 進來同時 New Image 跟著 Load 進來,避免再次出現 Error,曲線中的紅點為使用者所點的,按下 Curve Button 就會更新 New Image 的影像了。
主要程式碼
for (i=1;i<255;i++)
{
iCurveTable[i] = (int)(( fCoeA * i * i + fCoeB * i) + 0.5);
if (iCurveTable[i] > 255)
iCurveTable[i] = 255;
if (iCurveTable[i] < 0)
iCurveTable[i] = 0;
imCurve->Canvas->LineTo(i,255-iCurveTable[i]);
}
imCurve->Canvas->LineTo(255,0);
================================================================
Histogram 色彩統計直方圖
此功能在做 Red、Green 和 Blue 三個色彩的統計,利用統計的方式可以了解到三個色彩分佈的值有多少。如上圖所示,點選要顯示出來的統計圖,並點選左上角的主選單第二個Image 裡的 Histogram (如下圖所示)就會出現色彩統計方圖。
主要程式碼
for (j=0;j<iImageHeight;j++)
{
bPtrImage = (Byte *)Image1->Picture->Bitmap->ScanLine[j];
for (i=0;i<iImageWidth;i++)
for (k=0;k<iChannelNumber ;k++)
iHistogram[k][bPtrImage[i*3+k]]++;
}
================================================================
這次的作業感覺起來好像很難,但大部分的程式碼都給了,所以難度降低很多,不過還是有很多小問題,像是程式打完可以執行,但為什麼執行到一半出現 Error,自己也不懂問題出現在哪,英文也只看得懂超出範圍,但不知道是什麼東西,於是將訊息截圖問老師此錯誤訊息是什麼,一問之下才知道輸出的影像要和輸入的影像一起 Load,不然影像在做 scan line時會找不到位置去記,於是我將影像輸出的地方先做和影像輸入的動作一樣 Load,就解決了超出的範圍。
做 Level 時,要知道當值小於InputMin時,輸出值為OutputMin;值大於InputMax時,輸出值為OutputMax,這些搞混的畫圖就畫不出來,執行結果也會是錯的。
做 Curve 前的公式推導很重要,不懂拋物線方程式的話就無法完成話曲線的動作,點一點要知道座標,並將座標帶入拋物線的公式裡,才能畫出曲線。
做 Histogram 時,要裡用陣列存取紅、綠、藍三色的值,並利用 for 迴圈將相對應的值去做加一動作,最後輸出利用對應的畫筆顏色將對應的值畫在畫布上。
2013年9月23日 星期一
HW1
圖一 APP圖示
圖二 原圖
下載完打開之後有很多種相機可以選擇,包括一些自己沒看過的照相機。
第一種
LOMO Camera
很多人聽過LOMO但是不曉得LOMO是什麼意思,包括我自己。其實LOMO的全名是Leningradskoye Optiko Mechanichesckoye Obyedinenie(列寧格勒光學儀器廠),故事大致上是這樣---兩位學生在一家店買了這台停產的相機,就在路上隨手拍,拍完之後拿去沖洗店沖洗,洗出來的照片竟然產生出一種很奇妙的感覺,他們愛上了這種照片,因此推廣給大家,聲名大噪,組成了Lomographic Society。現今的LOMO一詞就是隨手拍拍,想拍什麼就拍什麼。
LOMO Camera拍出來有一個特點,就是四周會有暗角,有種特別強調的感覺。
第二種
Old Camera
看字面意思就知道是老相機,以前的相機就是黑白而已
所以拍出來的結果就是黑白照,偶爾處理得不好還會出現一點一點的,有復古風的感覺
第三種
Underwater camera
看字面的意思就知道這個相機是水底相機,可以把相機到水裡拍攝水中情景,可是我的不是防水手機所以無法做測試。
拍出來的感覺一樣有水中的感覺,左邊很像有水波的感覺
第四種
Holga
自己查了很多資料,還是不了解Holga是什麼。不過大概可以知道這款相機拍出來的照片是方的,很特別。
拍出來的效果很像Lomo相機,四周也都有暗角,一樣有給人注目中間的焦點。
第五種
Fisheye Camera
魚眼相機,顧名思義就是拍起來感覺就像魚眼睛所看到得感覺,影像變圓弧,看到的角度也變廣。
可以讓影像變形,看得出來原本平面的影像經由魚眼相機的修改下,影像就像放大向外凹形成圓弧的立體圖。
第六種
Tilt Shift
移軸攝影,這個詞也是第一次聽到,google查了一下,有看到一顆移軸鏡頭通常都很貴,拍出來的效果也很驚人,主要是用來修正利用普通廣角鏡頭拍攝時所產生的透視問題,對建築師來說是很好的工具。
拍攝的照片中,中間部分是正常的,上下兩部分是移軸攝影過後的效果,影像就像縮小模型一樣。
介紹完這幾種相機後,發現了還有一個地方可以修圖,就是修改圖片的右邊有一整排可以選擇,在那邊可以選擇你想要的框和意境,不但可以選擇相機還可以選擇模式,等整個圖修改完之後,還可以點選左邊的Share鍵,分享到微博、Facebook、Twitter等等,這功能也很棒,可以直接上傳,不用打開社群網站就可以了。
我覺得我們可以靠這個APP來拍很多有意境的相片,出去玩的時候,可以不用帶著很多不同功能的相機,整個APP就覺得很讚阿。
訂閱:
文章 (Atom)