图像铅笔画算法

本文介绍了图像铅笔画算法,属于非真实感绘制(NPR)的研究,基于《Combining Sketch and Tone for Pencil Drawing Production》工作。算法主要分为两步:勾勒轮廓和色调渲染。通过梯度求得笔画结构,分析直方图进行色调渲染,最终融合成铅笔画效果。提供部分代码实现和效果展示,以及相关资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于铅笔画算法


图像铅笔画算法,属于一直是非真实感绘制领域(Non-Photorealistic Rendering,NPR)中很热门的一个课题,但是计算机也很难模拟出像人一样真实的画质,这也显得CG师们的重要性。本文是基于香港中文大学Cewu Lu等人所做的工作《Combining Sketch and Tone for Pencil Drawing Production》,描述计算机生成铅笔画的艺术。本人才疏学浅,描述如有错误,还望指点。

算法概述

作者基于对日常生活中的人手绘铅笔画的观察,可以分为两个步骤,第一步勾勒出物体的大致轮廓;第二步是对物体进行色调渲染,即用铅笔反复轻轻的划。

手绘过程

也就是说铅笔画是由结构(Structure)和色调(Tone)组成。
铅笔画组成

算法步骤如下

  1. 产生笔画结构(Stroke Structure Generation )
  2. 色调渲染(Tone Rendering)
  3. 笔画结构图与色调渲染图融合得到最终图像

框架图

框架图

详细步骤

笔画结构的产生

通过对图像求其梯度得到,得到轮廓。

G=(( x I) 2 +( y I) 2 ) 12  (1) 

然后检测轮廓中每一点的方向,公式(2),沿着该方向进行扩展(3)。这里,作者是对得到的梯度图G进行8个方向的卷积,响应最大的卷积的方向为视为该点的方向。
C i (p)={ G(p)0 ifargmax i { ψ i G}(p)=iotherwise  (2) 

得到每个点的方向后,再对梯度图进行8个方向的卷积,将8个方向的响应叠加在一起,可得到图像的笔画结构
S= i=1 8 ψ i C i (3) 

色调渲染

人手绘的铅笔画的直方图往往如下


作者解释道,这是因为铅笔画有高光(bright layer),中间调(mid-tone),阴影(dark layer)三部分组成,如下图所示。

分别用 拉布拉斯分布,均匀分布,高斯分布函数来模拟。其表达式如下
P 1 (v)=⎧ ⎩ ⎨ 1σ b  e 1vσ b 
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值