PencilDraw是在论文Lu C, Xu L, Jia J. Combining sketch and tone for pencil drawing production[C]中提出的图像素描风格生成的算法。
去年看到用matlab实现的版本,分别是 pencil By fumin 和 PencilDrawing by candycat1992,当时想实现一个python版本用于部署在公司的项目上,然而matlab中的函数实在没能力转成python版本,因此放弃了。
最近看到有同学用python实现了这一算法pencil-python By duduainankai,但是该程序处理一张照片的时间仍然比较长,毕竟做那么多次卷积时间复杂度摆在那里,所以这么大的计算量部署在服务器承受不住,因此实现了一个JavaScript的版本,希望把计算放在客户端,本来寄希望于能在5秒内处理一张图片,然而实际结果暂时还在10秒以上,后续考虑使用GPU计算,以及优化程序。 实际应用中去除了方向矩阵卷积的乘法,时间降到了3-4秒左右。
2017-03-09
合并卷积计算与张量切片赋值,示例程序执行时间降到2s
实现出来的效果和@duduainankai的效果几乎一致 目前只实现了获取S图, T图和最终效果图后续补充。
<script type="text/javascript" src="matrix.js"></script>
<script type="text/javascript" src="pencil.js"></script>
<canvas id="test"></canvas>
<script type="text/javascript">
p = new PencilDraw({
"url": "58.jpg"
});
p.draw(document.getElementById("test"));
</script>
[1] Lu C, Xu L, Jia J. Combining sketch and tone for pencil drawing production[C]
[2] pencil By fumin
[3] PencilDrawing By cancat1992
[4] 素描风格生成
[5] pencil-python By duduainankai
[6] 卷积计算公式