在2015年8月份的时候,决心学习图像算法。

几乎把当时市面上的图像算法相关书籍都看了一遍,

资金有限,采取淘宝买二手书,长期驻留深圳图书馆的做法,

进度总是很慢,学习算法不得其法。

虽然把手上所有书籍都看完了,有那么一点点头绪,

但是感觉没有任何实战经验,或者说实际的产出。

那时候恰巧看到ImageShop的一篇文章,《一种具有细节保留功能的磨皮算法。

羡慕至极,在此情况下,鉴于本人安全出身,逆向功底还算扎实。

对这个算法进行了,长达1个月的逆向工作。

当然其实更多时间,还是对算法流程的理解上花的较多。

后来,结合一个开源工程的一段代码(https://github.com/glshort/MapReady),

这个工程现在看来还是一个不错的学习资料。

建议有兴趣的同学可以花时间好好看看。

当时主要看的代码是https://github.com/glshort/MapReady/blob/master/src/libasf_raster/kernel.c

而后,我对lee降噪算法进行了全新的解读和整理。

产出自己第一个图像算法。

有了这次算法的经验之后,对后续学习其他算法而言,入门了,就好办了。

刚开始学习图像算法的同学可以采用这份代码,入个门。《分享用于学习C++图像处理的代码示例

本人极其不推荐,基础知识都没理解好,就采用诸如 opencv这样的库,所谓快速入门。

相信我,后面你会发现,你现在偷的懒,以后还是要补回来的。

如果你跟我说你很努力,也没有收获。

我持保留态度,如果你没有把市面上所有相关书籍看一遍,你可能真的还不够努力。

后面当然我也有一段时间一直在研究图像算法,而去年深度学习大火了一把之后。

我也没有切进入去做,理解原理之后,自然也会知道弊端在哪里。

有一段时间我的工作任务就是为深度学习做一些前向传播方面的算法优化,

而同事只需要把训练好的模型丢给我去做集成就行了。

我一个人封装了安卓以及iOS的api接口给上层调用,也没啥难度,就是体力活。

包括前段时间腾讯的ncnn开源出来了,有那个精力去做这个事情,其实说白了也是体力活。

最近几个月我在研究音频算法,没什么难度,一通百通,也挺有意思的,

当数据有了时序维度之后,确实比较难理解。

我不太愿意去做深度学习的主要原因是,训练这块也是体力活为主,像我这种懒人,不想去操那种心。

这样懒懒散散,也快一年了。

这段时间有不少网友给我发邮件,问的问题林林总总。

不过有段时间,确实很多人关注胶片滤镜算法。

这个其实也没啥难度,市面上绝大数APP用的是3d lut算法。

你问我怎么知道的?

我把vocoCam的算法完完整整逆向出来了,你说我怎么知道的?

去年与 ImageShop 博主 共事半年多,互相学习,对我也是受益良多。

近期他博客产出了很多干货。

问我怎么博客不写了,不更新了。

精力有限啊,大多数时间用来睡大觉了。

嗯,说回正题。

早上睡醒,想到一个改进lee降噪算法的思路,下床,编码验证。

完成,收工。

如标题所说,我将lee降噪算法改造成,降噪 美颜 虚化 增强 为一体的极速算法,

你问我怎么做到的,应该是昨晚周公托的梦。

上多组 前后对比图,关注下人物的眼睛以及皮肤。

水润润的感觉,真好。

提供demo程序给大伙试用。

1080P图像在博主I5的破机子上,耗时40ms左右。

算法单线程,不采用simd指令集(编译器的增强指令集也被我关闭了),omp异步之类的方式,纯C实现, 纯纯的。

PS:有逆向功底的,可以逆向看一下,代码抠出来可以直接编译的。

演示程序暂不提供算法参数强度调节,采用简单的自适应方式。

嗯,因为我懒。

刚出炉,没做过多的处理。

下载地址:demo程序下载

又困了,该睡回笼觉去了。

俺的联系方式如下:

邮箱: gaozhihan@vip.qq.com

联系我时请说明来意,不然一律忽略,谢谢。

若此博文能帮到您,欢迎扫码小额赞助。

微信:

支付宝:

集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序的更多相关文章

  1. 磨皮美颜算法 附完整C代码

    前言 2017年底时候写了这篇<集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序> 这也算是学习过程中比较有成就感的一个算法. 自2015年做算法开始到今天,还有个把月 ...

  2. 音频降噪算法 附完整C代码

    降噪是音频图像算法中的必不可少的. 目的肯定是让图片或语音 更加自然平滑,简而言之,美化. 图像算法和音频算法 都有其共通点. 图像是偏向 空间 处理,例如图片中的某个区域. 图像很多时候是以二维数据 ...

  3. 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!

    摘要:近日,CVPR 2022放榜,基于CANN的AI论文<Interactive Image Synthesis with Panoptic Layout Generation>强势上榜 ...

  4. 基于RNN的音频降噪算法 (附完整C代码)

    前几天无意间看到一个项目rnnoise. 项目地址: https://github.com/xiph/rnnoise 基于RNN的音频降噪算法. 采用的是 GRU/LSTM 模型. 阅读下训练代码,可 ...

  5. 推广TrustAI可信分析:通过提升数据质量来增强在ERNIE模型下性能

    项目链接:https://aistudio.baidu.com/aistudio/projectdetail/4622139?contributionType=1 fork一下,由于内容过多这里就不全 ...

  6. oepncv实现——图像去水印

    功能简介:通过拖动鼠标实现指定区域水印或是斑点的去除. 实现原理:利用opencv鼠标操作setMouseCallback函数框选(左上到右下)需要处理的区域,按下鼠标开始选中,松开鼠标结束,对选中区 ...

  7. 【年度开源、工具合集】牛津计划,DMTK,Graph Engine…提高你的工作效率!

    本篇合集包括以下三个部分的内容: 1.微软亚洲研究院过去一年的所有开源合集,如分布式机器学习工具包DMTK等. 2.利用微软研究院的技术提高工作效率的工具合集,如让没有机器学习背景的开发人员也能开发出 ...

  8. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)

    集群概念介绍(一)) 白宁超 2015年7月16日 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习 ...

  9. Hadoop集群(第10期)_MapReduce与MySQL交互

    2.MapReduce与MySQL交互 MapReduce技术推出后,曾遭到关系数据库研究者的挑剔和批评,认为MapReduce不具备有类似于关系数据库中的结构化数据存储和处理能力.为此,Google ...

随机推荐

  1. SVG渐变

    前面的话 给SVG元素应用填充和描边,除了使用纯色外,还可以使用渐变.本文将详细介绍SVG渐变 线性渐变 有两种类型的渐变:线性渐变和径向渐变.必须给渐变内容指定一个id属性,否则文档内的其他元素不能 ...

  2. Log4j配置详解及不同的包(package)下的日志写入到不同的日志文件下

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt262 以下都是log4j.properties要写入的内容: 一:参数介绍: ...

  3. [转]Java7中的ForkJoin并发框架初探(中)——JDK中实现简要分析

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp85   根据前文描述的Doug Lea的理论基础,在JDK1.7中已经给 ...

  4. Java 类的热替换 —— 概念、设计与实现

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp71   Java 类的热替换 -- 概念.设计与实现 构建基于 Java ...

  5. django源码解析一(请求处理流程)

    1.我们都知道WSGI是一个规范,规范了server和application之间通信的一些约束,server端在监听到请求之后,会把请求转给application去处理,他们之间关联起来的桥梁是一个e ...

  6. 日期时间范围选择插件:daterangepicker使用总结

    分享说明: 项目中要使用日期时间范围选择对数据进行筛选;精确到年月日 时分秒;起初,使用了layui的时间日期选择插件;但是在IIE8第一次点击会报设置格式错误;研究了很久没解决,但能确定不是layu ...

  7. [自制操作系统] JOS文件系统详解&支持工作路径&MSH

    本文分为两部分: 第一部分将详细分析JOS的文件系统及文件描述符的实现方法. 第二部分将实现工作路径,提供新的系统调用,完善用户空间工具. 本文中支持的新特性: 支持进程工作目录 提供getcwd与c ...

  8. 201521123083 《Java程序设计》第10周学习总结

    1. 本周学习总结 2. 书面作业 本次PTA作业题集异常,多线程 1.finally题目4-2 1.1 截图你的提交结果(出现学号) 1.2 4-2中finally中捕获异常需要注意什么? 一个tr ...

  9. 201521123051《Java程序设计》第七周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 使用工具:百度脑图 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 ...

  10. 201521123080《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...