我的应用程序使用人们的照片和视频,我想要卡通。所以我需要一个算法来手动完成(我们的产品使用c ++ / Qt,它有图像处理类)或者也许是一些CLI程序,我可以在我自己的应用程序中调用和使用它。
以下是一些可以使用的算法:
这些都是相当基础的,并且都非常容易实现。请记住,中值和盒子模糊滤镜可以用线性时间复杂度w.r.t实现。内核半径。
更多编辑:
一旦你了解了Huang的算法,实现盒式模糊滤镜就是一块美味的蛋糕。
阅读材料:
其他阅读材料包括用于分割和边缘追踪的Gonzalez & Woods' Digital Image Processing(似乎是旧版本)。 8向边缘跟踪可能非常难以弯曲(在像素上或像素间边缘之间进行选择以及如何锁定边缘)。我很乐意分享一些代码,但是百行不完全适合这里。
您可以尝试旋转镜检查,就像toonyphotos.com一样:
您可能想查看Freestyle,一个开源(Google Summer of Code,甚至)项目,为non-photorealistic renderer实现Blender。以下是卡通模式的输出示例: (来源:sourceforge.net)
如果在the GIMP的卡通滤镜(或其他一些滤镜组合)中有一些参数可以达到预期的效果,那么它可以在batch processing mode中运行。
我自己没有这样做,但想到两个步骤可能会给图像带来卡通效果。
不确定这是否会有所帮助,但this tutorial for Photoshop建议执行以下操作:
这是结果。
我想你可以在你的程序中做类似的事情。
这样做比较容易。以下是步骤:
这将为您提供一个看起来像cel阴影卡通的渲染图像。
我制作了一些免费软件(对于win64),它在以下网址完成:http://3dstereophoto.blogspot.com/p/painting-software.html
该软件的名称是“漫画家”,你可以在这里看到它:http://3dstereophoto.blogspot.com/2018/07/non-photorealistic-rendering-software_9.html
这些是我的博客的链接,主要涉及3D摄影(深度图,摄影测量等)。
实际上我不知道一个工具,但你可以看看osg(openSceneGraph)
有一个osgFX库,有卡通效果......也许你可以从那个图书馆激发...
也许(我不知道)imagemagick有很多功能,也许它有这样的功能,但我不知道...