如何使用 GPUImage 框架将图像卡通化?

How to cartoonize images using GPUImage framework?

我正在尝试通过组合来自 GPUImage 框架 的多个滤镜来创建卡通效果,但结果并不理想。我已经阅读了所有关于卡通化或卡通化图像的问题,但它们都是旧的,实际上没有代码示例的答案。所以如果可能的话,有人可以帮我解决这个问题。

我的代码如下:

var picture:PictureInput!

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    // Filtering image for display
    picture = PictureInput(image:UIImage(named:"girlFace.png")!)

    DispatchQueue.main.async {
        self.doFilter()
    }
}

private func doFilter() {
    // to soften
    let sharp = UnsharpMask()
    sharp.blurRadiusInPixels = 30
    sharp.intensity = 8

    // to give oil paint look
    let kuwahara = KuwaharaFilter()
    kuwahara.radius = 6

    picture --> sharp --> kuwahara --> renderView
    picture.processImage()
}

but I want something like or near to

所有答案,想法都可以接受。

嗨,编码员 ACJHP 理解你的问题,

首先是为什么不使用 ToonFilter,然后应用 KuwaharaFilter,它可能会起作用。 但是看到你的最终图像输出,我确信这可以使用 AI 和 coreMl 模型来完成。

对于你的输出,你可以看到这个 link - https://blog.prismalabs.ai/diy-prisma-app-with-coreml-6b4994cc99e1

对于 coreml 模型,使用此 link - https://likedan.github.io/Awesome-CoreML-Models/

这里可以直接下载模型使用。 希望这对您有所帮助