Skip to content

daxpot/PencilDraw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JavaScript PencilDraw

简介

PencilDraw是在论文Lu C, Xu L, Jia J. Combining sketch and tone for pencil drawing production[C]中提出的图像素描风格生成的算法。

去年看到用matlab实现的版本,分别是 pencil By fuminPencilDrawing 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] 卷积计算公式

About

javascript implementation of pencil drawing

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published