如何以编程卡通IFY的形象呢?(How to cartoon-ify an image progra

2019-06-21 07:46发布

我的应用支持的人的照片和视频,我想cartoonify。 所以,我需要一个算法做手工(我们使用C ++ / Qt的为我们的产品,它具有图像处理类),或者也许有些CLI程序,将做到这一点对我来说,我可以打电话和我们自己的应用程序中使用。

Answer 1:

下面是一些算法一起玩:

  • 中值或重复框模糊滤波器来获得卡通调色板
    • 编辑:双边滤波应该满足您的需求,甚至更好
  • MIN滤波器(零百分点),以提高某些类型的边
  • 使用任一小子立方体或球体在RGB颜色立方体的彩色图像分割
  • 使用边缘检测诸如索贝尔内核或8路边缘跟踪分割的图像上通用的边缘增强
  • 具有增强的边缘的组合大模糊/中值滤波图像

这些都是很基本的,所有很容易实现。 请记住,中位数和箱模糊过滤器可以用线性时间复杂度WRT内核半径来实现。

更多编辑:

一旦你得到黄的算法的思想,实现一箱模糊滤镜是一种美味的一块蛋糕。

阅读材料:

  • 快速中值和双边滤波 (获得PDF)
  • 中值滤波固定时间 (获得PDF) 注:我有这个使用单声道/ SIMD加速直方图凝聚C#实现,但它只有在直径超过似乎比O(R)算法更好〜60个像素,由于的加/减指令(盈亏平衡点),C ++实现可比的数字可能更适合驾驭SIMD。

其他阅读材料包括冈萨雷斯&Woods的数字图像处理 (似乎是一个较旧的版本),用于分割和边缘跟踪。 8路边缘跟踪可真的很难各地把你的头(上像素或像素间的边缘以及如何含住边缘之间进行选择)。 我很乐意分享一些代码,但百套不完全适合顺利地在这里。



Answer 2:

你可以尝试rotoscopy,像toonyphotos.com的作用:



Answer 3:

你可能想看看自由泳 ,一个开源的(代码谷歌夏天,偶数)项目来实现非真实感渲染的搅拌机 。 下面是它的输出,以卡通模式的例子:
(来源: sourceforge.net )



Answer 4:

如果有一些组,其在实现所期望的效果参数的GIMP的卡通过滤器(或滤波器一些其它组合),它可以在一个运行批处理模式 。



Answer 5:

我没有做这个自己,但想着两个步骤,可能给图像的卡通外观。

  1. 检测边缘,并吸取那些边缘相当相当厚线(几个像素)。

  2. 减少图像的颜色数。



Answer 6:

不知道这是否会有所帮助,但本教程为Photoshop建议执行以下操作:

  1. 在Photoshop中打开图像
  2. 滤镜>模糊>高斯模糊。 在3.0或更高版本。设置半径,去味。
  3. 编辑>渐变高斯模糊。 一个窗口会弹出。 。 。 将模式设置为变暗。 您可能还需要降低不透明度。

这里的结果。

我想,你可以做你的程序类似的东西。



Answer 7:

这是比较容易做到的。 具体操作步骤如下:

  • 双边滤波,以简化/抽象的照片。 你可能想使它的速度更快双边过滤分离。 在沿着渐变,然后沿垂直于梯度1D执行双边滤波器。

  • 检测边缘。 例如,使用高斯算法中的差异。 你可能想用狗的梯度方向和平滑它的流线以下。 为了获得流线,你需要得到边缘切线流(ETF),你可以通过结构张量得到。

  • 量化的颜色。 其实,你量化亮度来模拟卡通渲染又名卡通着色。

  • 混合AFER量化和你检测到的边缘提取的图像。

这会给你一个渲染图像,看起来像一个CEL阴影卡通。

我所做的正是这样做的,在一些免费软件(Win64的): http://3dstereophoto.blogspot.com/p/painting-software.html

该软件的名称是“漫画家”,你可以在这里的行动看出来: http://3dstereophoto.blogspot.com/2018/07/non-photorealistic-rendering-software_9.html

这些是链接到我的博客,其主要与3D摄影(深度图,摄影等)的交易。



Answer 8:

其实我不知道一个工具,但你可以看看OSG(OpenSceneGraph的)

有一个osgFX库,有卡通效果...也许你可以从图书馆启发......


也许(我不知道)的ImageMagick有许多功能,也许它有这样一个特点,但我不知道...



文章来源: How to cartoon-ify an image programmatically?