首先看這兩張效果圖:
這個濾鏡在imagestone這個軟體中有完整**,現在改寫如下:
#define pi 3.1415926535897932384626433832795
struct point
;void tilerefelctrgb(unsigned char* pinput,unsigned char* poutput,int width,int height,int nstride
,int nangle,int ncount,int nsquaresize)
for (y=0;ywidth-1)
xsample = width-1;
if(xsample<0)
xsample = 0;
if(ysample>height-1)
ysample = height-1;
if(ysample<0)
ysample = 0;
index = xsample*3 + ysample*nstride;
r += pinput[index];
g += pinput[index+1];
b += pinput[index+2];
}index = x*3+y*nstride;
poutput[index] = r / aasamples;
poutput[index+1] = g / aasamples;
poutput[index+2] = b / aasamples;
} }free(aapt);
}
該濾鏡有三個引數:
1. 角度:控制方向
2. 大小:控制瓷磚大小
3. 數量:控制瓷磚中變形的畫素數
具體的流程大家可以根據**去理解,無非是畫素點的scale,rotate以及offset等,assample來控制精度。
濾鏡之顏色特效
這些都比較簡單,對rgb的一些簡單操作就能夠實現,無非可以理解為rgb的對映,可以用matlab很容易的看出對映曲線。原圖 l 碧綠效果 實現原理 newr g b g b 128 newg r b r b 128 newb r g r g 128 l 棕褐色效果 也稱為老 效果,可以在上面加一些高...
Android OpenGLES濾鏡開發之大眼效果
前言 在很多美顏相機啊,抖音啊,都會有一些放大眼睛的效果,今天就來實現如何放大眼睛。思路1 首先使用opencv定位到人臉 2 根據定位到的人臉去檢測人臉關鍵點,進而獲取到人眼睛的位置。3 根據眼睛位置,對眼睛進行放大。實現定位人臉 人臉的定位追蹤,在之前文章中已經寫過opencv實現人臉追蹤 當時...
Android OpenGLES濾鏡開發之貼紙效果
前言 思路1 貼紙肯定也是需要定位到人臉的 2 找到貼紙需要放置的位置 3 將貼紙紋理和人本身紋理進行融合 實現人臉定位啥的,我就不說了,不清楚的可以去前面的文章看看,主要來看看貼紙是如何貼上去的 1.建立貼紙的紋理 opengl 紋理 mtextureid newint 1 openglutils...