Как нарисовать границу эскиза или карандашную границу, используя GPUImage, как это?

Как нарисовать границу эскиза или карандашную границу, используя GPUImage, как это? Результат не очень хороший, когда я использую изображение маски. Итак, я думаю, что это пользовательский фильтр, но я не знаю, как его реализовать? Я был озадачен в течение двух недель. Кто-нибудь может мне помочь... результат вот так (слева нужен ПМ, справа мой): введите здесь описание изображения

исходное изображение и изображение маски: введите здесь описание изображения

введите здесь описание изображения


person Jobs    schedule 09.08.2018    source источник


Ответы (1)


Эй, xue, глядя на вашу проблему, я думаю, вам следует использовать SketchFilter или Thresholdsketchfilter и поиграть со значениями, чтобы получить желаемый результат, но, поскольку вы просите маскировать, я прилагаю код, где я использую Dissolve для смешивания двух изображений.

func addColorBlending(withImage : UIImage) {

        let blendImageFilter = DissolveBlend()
        blendImageFilter.mix = 0.3

        let blendImage = PictureInput(image: withImage)
        blendImage.processImage()
        blendImage.addTarget(blendImageFilter)

        let imageToBlendOn = PictureInput(image: self.processingModel.pencileDefaultImage)
        imageToBlendOn.processImage()
        imageToBlendOn.addTarget(blendImageFilter)

        let pictureOutput = PictureOutput()
        pictureOutput.imageAvailableCallback = { imageData in

            DispatchQueue.main.async {
                self.handAndFootImageView.image = imageData
                self.processingModel.blendedImage = imageData
            }
        }

        blendImageFilter.addTarget(pictureOutput)

    }

Здесь вы можете настроить свойство blendImageFitler.mix, чтобы получить желаемый результат. Надеюсь, это поможет вам.

person Shivam Gaur    schedule 26.09.2018