理解如何实现Android美颜相机

  • android如何实现美颜相机
  • 均值滤波的锐化算法

android如何实现美颜相机

1.用具有保边效果的滤波算法对图像进行模糊处理
2.用肤色检测算法保护非皮肤区域
3.将模糊后的图像和原图进行图像融合
4.对融合后的图像进行锐化处理

对于步骤一,该滤波算法可以选择双边滤波,导向滤波,表面模糊等,只要能保边缘就行,高斯模糊是不行的,色斑逗逗就是在这一步磨掉的哈哈,这一步运算速度将直接影响到最后美颜的效率,这也是可以各显神通的地方。

对于步骤二,第一次听说肤色检测好像很高大上,但是它的算法非常简单,就是根据像素的rgb值去判断而已

对于步骤三,可以采用基于alpha通道的图像融合,这一步的作用是为了增加皮肤的质感,因为第一步一般都把皮肤磨得跟娃娃一样了感觉很假。

对于步骤四,在步骤三处理后,会发现图像还是有点朦胧感,还是第一步的副作用,锐化可以强化边缘,让图像看起来更清晰,关于锐化的算法网上有不同的实现算法

以上来自ALiSir写的美颜demo中的解释。

要去实现美颜相机 , 这个还需要一定的android基础
要掌握CyclicBarrier 线程(demo里面将图片分为5份,让5个线程去处理这5个部分)

均值滤波的锐化算法

public int[] sharpen(int[] src, int[] res, int width, int height, int radius, int k, int startRaw, int endRaw) {

//和数组int[] rwindow = new int[width];int[] gwindow = new int[width];int[] bwindow = new int[width];//窗口面积int filter_win = (radius * 2 + 1);filter_win = filter_win * filter_win;//窗口内的rgb值得和int rsum = 0, bsum = 0, gsum = 0;//新的rgb值int new_r = 0, new_g = 0, new_b = 0;//旧的rgb值int old_r = 0, old_g = 0, old_b = 0, oldP = 0;//窗口平均值int mean_r = 0, mean_g = 0, mean_b = 0;//窗口增加值,和删除值int addp = 0, subp = 0;//初始化window数组for (int y = 0; y < width; y++) {    int r_col_sum = 0;    int g_col_sum = 0;    int b_col_sum = 0;    for (int x = -radius; x <= radius; x++) {        int inky = edgeHandle(startRaw + x, height);        int tmpPixels = src[inky * width + y];        int b = tmpPixels & 0xff;        int g = (tmpPixels >> 8) & 0xff;        int r = (tmpPixels >> 16) & 0xff;        r_col_sum += r;        g_col_sum += g;        b_col_sum += b;    }    rwindow[y] = r_col_sum;    gwindow[y] = g_col_sum;    bwindow[y] = b_col_sum;}

其中根据方差和均值算出新像素
mean_r = rsum / filter_win;
mean_g = gsum / filter_win;
mean_b = bsum / filter_win;

更多相关文章

  1. Android 视频 美颜SDK对比
  2. 2019最新Android算法相关面试大全,请查收
  3. android 日历 农历算法
  4. Android HMAC_SHA1 算法简单实现
  5. Android G726语音编解码库+除燥音算法
  6. 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法(android)
  7. android NV21裁剪算法
  8. Android算法面试题(1)

随机推荐

  1. install Android development environmen
  2. Android:EventBus向上向下传参
  3. Android打包编译流程
  4. Android之ToolBar项目封装,踩坑过河
  5. Android TextView内容设置超链接、颜色、
  6. 获取定位数据
  7. android网络连接总结
  8. Android调用系统相机onActivityResult返
  9. android notification 传值关键
  10. 实现Android立体翻页效果的工具类!