Java应用卡通效果

标签 java android image-processing imagefilter

我想创建一个图像过滤器来创建卡通化效果。我正在尝试的是这样的 -

cartoonizer

请帮助实现这一目标的程序。我需要用 Java 完成此操作。

如果无法使用工作代码,至少让我知道这些事情的完成情况。由于现在有很多网站都这样做,所以我认为这应该不会太困难。

到目前为止我试过的是这个 -

BufferedImage in = ImageIO.read(new File(basePath + "in11.jpg"));
BufferedImage out = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB);

EdgeFilter edgeFilter = new EdgeFilter();
edgeFilter.filter(in, out);

GrayscaleFilter grayscaleFilter = new GrayscaleFilter();
grayscaleFilter.filter(out, out);

InvertFilter invertFilter = new InvertFilter();
invertFilter.filter(out, out);

但这是用于创建草图效果的代码(我正在使用此 link 中的 JHLabs 过滤器)。输出是这样的——

output-sketch

现在我的假设是,如果我能够实现一个滤镜来减少图像中的颜色数量,然后如果我将它与草图图像叠加,我可能会得到我想要的效果。但我不知道如何实现它。

最佳答案

  • 使用少量颜色的调色板重新绘制对象(k-means 方法适用于查找要使用的颜色,但您应该确定颜色的数量)
  • 可选:使用形态学操作过滤噪声(膨胀+腐 eclipse )
  • 寻找边缘(Canny 等)
  • 使用任何轮廓简化算法简化边缘

另一种方法是对其极端参数使用双边平滑滤波器(非常平滑):see example and code .

OpenCV lib 对此没问题,它还支持 Java,或者您可以使用 JavaCV 作为 Java-openCV 代理。

关于Java应用卡通效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199864/

相关文章:

java - 如何从 Azure 使用 API 获取订阅的区域信息?

java - startForeground 错误的错误通知,看不到修复

Android ListView 适配器不会刷新

java - Android Studio Gradle 同步 : "Unable to load class..."

java - Java 中的图像处理,如 MATLAB Image Processing Toolbox

java - 创建 Java 消息对话框(swing/awt/other)的最快方法?

java - EditText 到 String 返回 Null

java - 有没有办法在 build.xml 中设置 ant -verbose?

algorithm - 如何填充半径增加的圆?

python-3.x - 计算特定暗区的平均宽度