淺談相機App

作者/藍士閔

前言 在過去智慧型手機還沒出現的時代,要將照片作一些特殊的處理或是後製,只能透過一些電腦軟體來處理,像是最有名的PhotoShop或是PhotoImpact。如今,在這個App世代,人們只需要將剛拍好的照片,利用各式各樣的相機App或是影像處理App,即可快速的將照片處理成自己想要的樣子。在App Store中,輸入關鍵字Photo、Camera,就會出現上百種的App,種類之多,讓民眾不知道該選擇那種。而之所以會出現這麼多的App,最大的因素在於,這些影像處理的技術,都是非常容易學習的,只要懂得程式設計的民眾,都可以輕鬆的撰寫出影像處理App。接著筆者來介紹一些App常見到的功能。 黑白處理 這個功能在大部分的App中都有,這也是最簡單的影像處理方式,有個專有名詞叫做「灰階處理」。假設一張圖片的大小是480X480,就代表著這張圖片是由230400個像素點所組成。而一個像素點,都儲存了R(Red)、G(Green)、B(Blue),三個數值,分別代表著光的三原色。大部分的程式設計工具都有相關的函式可以使用,像是 .getPixelRed( Image i, int x, int y ),即可取得座標( x, y )的R的數值。利用三個數值的變化,即可顯示出人類眼睛所能辨識的大部分顏色。而黑白處理,就是將這三個數值帶入一套所謂的灰階公式,此公式為:0.299*R + 0.587*G + 0.114*B,運算後產生的值,再取代原本的三個數值,即可得到黑白影像。 下圖是筆者利用簡單的程式,將圖片進行黑白化的結果,圖一為原圖,圖二為黑白化的結果。上述的公式是學界所定義的標準,若想要讓黑白照片有不同的變化,可以在各原色前面的細數做一些更改。若想要灰一點,則可以讓G的係數增加一些,而R和B的係數降低一些。

《圖一》

《圖二》
對比度以及亮度處理 首先我們看到圖三與上面原圖的比較,圖三中的花朵看起來更為的明亮,而周遭的背景,看起來更為的黯淡,這就是所謂的加強對比度效果,而右圖則是將單純整張圖片都亮度增強。對比度增加的做法並不難,首先要做的就是將圖片的色彩值作區分,訂一個標準值,接著將三原色的數值跟標準值進行比對,區分為比較明亮的色彩和比較暗的像素點。接著將較明亮的像素點,加上一定比例的值,相對的,較暗的像素點,則是減去一定比例的值,最後即可達到圖一的結果。而圖四就是單純的將所有的值,加上一定比例的值,即可達到明亮的效果。 另外,女生最喜歡的美白功能,也是利用類似的方式來做。先將照片中,找出膚色相近的像素點,接著以較白膚色的像素點為基礎值,來調整原本的像素點,即可達到美白的效果。圖六為處理過後的照片,皮膚的顏色比圖五來的白皙。利用這種色調的變化方式,就可以產生各種有趣的效果,讓一張照片可以呈現各種不同的風貌。

《圖三》

《圖四》

《圖五》

《圖六》
素描效果 如下圖所示,將原本的照片處理成用鉛筆素描的樣子。這種效果來自於很簡單的影像處理技巧,俗稱為測邊(Edge Detection)。先將照片運用最開始提到的灰階處理,接著取一個像素點的灰階值與周圍像素點灰階值做比較,從圖一的灰階圖可以明顯的看出,花瓣和石頭的顏色有著極大的差異,而這兩個點的像素值也是差距非常大,所以我們可以判定,此點為一個邊界點(Edge)。在判定的時候,運用各種的算子來進行迴圈的運算,較知名的算子有Marr Hildreth算子、Sobel算子等等。利用不同的算子,可以達到不同的效果。若再加上色調的變化,還可以呈現出顏色泛黃的復古效果,圖九所示。

《圖七》

《圖八》

《圖九》
模糊化效果 當我們在拍照時,為了突顯出目標物,會將光圈焦距進行調整,讓背景產生模糊的效果,如圖十所示。這種模糊化的效果,可以利用影像處理中的Blur技術做出來。Blur技術跟Edge Detection兩種是完全相反的技巧,Edge Detection是將「邊」找出來明顯化,而Blur則是不明顯化。而做法和Edge Detection有點類似,都是用算子來將各像素值轉換成新的值,而較常用且較淺顯易懂的算子為高斯模糊算子。 首先將目標物選取出來,如圖十一所示,利用兩個紅圈將花朵框起來。的一個紅圈內不做任何處理。第一個和第二個紅圈內,進行較淺的Blur處理,而其他部分則做完整的Blur處理,即可得到圖十的結果。

《圖十》

《圖十一》
結語 市面上大部分的App功能所運用到的技巧,都是較為淺顯易懂的影像處理技巧,上述提及的四種技巧,還可以互相組合加以變化,呈現出各式各樣的風貌,像是受大眾喜歡的LOMO效果、肌膚美化效果等等。只要有基礎的程式設計能力,懂得迴圈的運用、矩陣運算等等,每個人都可以創造出屬於自己的相機App。