我的应用支持的人的照片和视频,我想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:
我没有做这个自己,但想着两个步骤,可能给图像的卡通外观。
检测边缘,并吸取那些边缘相当相当厚线(几个像素)。
减少图像的颜色数。
Answer 6:
不知道这是否会有所帮助,但本教程为Photoshop建议执行以下操作:
- 在Photoshop中打开图像
- 滤镜>模糊>高斯模糊。 在3.0或更高版本。设置半径,去味。
- 编辑>渐变高斯模糊。 一个窗口会弹出。 。 。 将模式设置为变暗。 您可能还需要降低不透明度。
这里的结果。
我想,你可以做你的程序类似的东西。
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有许多功能,也许它有这样一个特点,但我不知道...