1. 程式人生 > >Android Camera 實時濾鏡(三)

Android Camera 實時濾鏡(三)

一、基於Android平臺基本濾鏡演算法的實現

1Android提供了改變影象數值的方法ColorMatrix,通過ColorMatrix方法可以實現基本濾鏡,如黑白、灰色、泛黃等效果。

2、通過ColorMatrix改變影象數值,生成變換矩陣,利用矩陣相乘,來改變每個點的畫素值。

 Matrix =>

r1

r2

r3

r4

r5

g1

g2

g3

g4

g5

b1

b2

b3

b4

b5

a1

a2

a3

a4

a5

變化以後

R'  =  R * r1  +  G * r2  +  B * r3  +  A * r4  +  r5;

G'  =  R * g1  +  G * g2  +  B *g3  +  A * g4  +  g5;

B'  =  R * b1  +  G * b2  +  B *b3  +  A * b4  +  b5;

A'  =  R * a1  +  G * a2  +  B * a3  +  A * a4  +  a5;

1~3列是控制色相的,第4列是控制透明度的,第5列是分量的增加值

3RGBA係數值變化會修改影象的效果

1)對角線值為1.0,其他為0時,影象保證的是原影象

影象原圖

R

1.0

0

0

0

0

G

0

1.0

0

0

0

B

0

0

1.0

0

0

A

0

0

0

1.0

0

 

2)對角線值若大於1.0,其他為0時,影象偏亮

影象偏亮

R

2.0

0

0

0

0

G

0

2.0

0

0

0

B

0

0

2.0

0

0

A

0

0

0

2.0

0

 

3)對角線值若小於1.0,其他為0時,影象偏暗

影象偏暗

R

0.5

0

0

0

0

G

0

0.5

0

0

0

B

0

0

0.5

0

0

A

0

0

0

0.5

0


4)設定影象為灰色,通過查資料 R 0.3 G0.59 B 0.11

影象偏暗

R

0.3f

0.59f

0.11f

0

0

G

0.3f

0.59f

0.11f

0

0

B

0.3f

0.59f

0.11f

0

0

A

0

0

0

1.0

0


4、根據以上的實現,實現基本濾鏡的演算法是

public Bitmap getBlackStyle(Bitmap src){
		

Bitmap dst = Bitmap.createBitmap(src.getWidth(),src.getHeight(), Config.ARGB_8888);
		Canvas canvas = new Canvas(dst);
		ColorMatrix cm = new ColorMatrix();
        //設定影象為灰色,通過查資料 R 0.3 G0.59 B 0.11
		cm.set(new float[] { 
				0.3f, 0.59f, 0.11f, 0, 0, 
				0.3f, 0.59f, 0.11f, 0, 0, 
				0.3f, 0.59f, 0.11f, 0, 0, 
				0, 0, 0, 1, 0 });
		Paint paint = new Paint();
		paint.setColorFilter(new ColorMatrixColorFilter(cm));
		canvas.drawBitmap(src, 0, 0, paint);
		// 儲存影象
		canvas.save(Canvas.ALL_SAVE_FLAG);
        // 儲存
		canvas.restore();
		return dst;
	}



三、後濾鏡時代

在網上看到一些資訊和相機應用,很多相機玩家對手機相機的使用是越來越多,作為手機相機的開發者需要有更多的創意和特性為手機相機添彩!如下幾點相機的發展方向供大家參考:


1實時濾鏡

VIDA 是一款來自國內團隊的照相應用,它的一大特色就是實時濾鏡,在拍攝的同時你已經可以預覽到最終的成品。這是一個強化濾鏡功能的方向。和單純的加入新濾鏡不同,實時濾鏡把握住了所見即所得的精髓。

2GIF 動畫

GIFshop 是 一款快速製作定格動畫的應用。它結合了動態畫面的敘事能力,保留了圖片的小體積特點。但 GIFshop 的問題也非常突出,比起記錄生活,它更適合於創作一些幽默的動態小品。一旦涉及到 創作” ,使用者的門檻就被無情地提高了。但讓畫面動起來的想法要比單純的強化濾鏡要走的更遠一些。

3動態圖片

Cinemagram 制 作出來的圖片可以只在某一特定區域中出現動態效果。你可以那它建立那種網上流行的會動的海報。比起 GIFshop ,它能夠讓普通的記事照片變得有點魔幻。由於應用的構思巧妙,因此適合套用在不同的場合中。使用者的門檻相對較小,但收穫卻是挺大的。我將其看作是 GIFshop 的改進版本。

4聲音+圖片

Picle 是 一款讓你在拍攝相片的同時也記錄下一段音訊的應用。它的好處是讓 畫外音” 這一有趣的角色參與照片的敘事。相比上述應用,Picle 進入了另個維度,它考慮到圖片的敘事瓶頸,並試圖通過加入音訊來突破。Picle 所面臨的問題是,它建立了一種新的格式,而這種格式目前還只能在 Picle 體系內分享。

    後濾鏡時代裡各支團隊在不同方向上設定了不同的瓶頸,並通過一定的方法來突破。思考的起點無一例外的定在了增強圖片敘事能力之上。從目前的情況來看,有一些事項值得注意:

· 體積:不能因為增強了效果而變得臃腫。

· 題材:不能因為特別適合某種題材而狹隘了使用者的使用場景。

· 格式:在現有流行的格式上入手,避免使用新格式。

· 門檻:在使用者利益和使用複雜度上尋求平衡。

· 多媒體:在圖片上做加法,但不能演變成拍攝視訊。

      相信隨著硬體技術的增強,手機將成為一類新的照相裝置。它也許替代不了傳統的相機,但它卻能因為應用而變得不可替代。而可以預見的是,濾鏡不會是手機照相的最後一站。