濾鏡之瓷磚TileReflect

2021-06-18 19:05:15 字數 1168 閱讀 9155

首先看這兩張效果圖:

這個濾鏡在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...