BradLarson / GPUImage

An open source iOS framework for GPU-based image and video processing
http://www.sunsetlakesoftware.com/2012/02/12/introducing-gpuimage-framework
BSD 3-Clause "New" or "Revised" License
20.24k stars 4.61k forks source link

How to remove green color from any Image . #2563

Closed Sumit-2singh closed 6 years ago

Sumit-2singh commented 6 years ago

HI Brad,

Thanks to providing us really amazing SDK like GPUImage! I am building app using GPUImage framework but i need some help. below i have mentioned my Selected image which i need to process of remove green color from image

testimage

like i have a image with green color which i need to replace with clear color , i have tried FilterType GPUImageChromaKeyBlendFilter but no result found

Below i'm mentioned my code can you please guide me where i am going wrong.


Defined filter in array

FilterOperation ( listName:"Chroma key blend (green)", titleName:"Chroma Key (Green)", sliderConfiguration:.Enabled(minimumValue:0.0, maximumValue:1.0, initialValue:0.4), sliderUpdateCallback: {(filter, sliderValue) in filter.thresholdSensitivity = sliderValue }, filterOperationType:.Blend )

below is the code of My Viewcontroller Object Declaration @IBOutlet var filterSlider: UISlider? @IBOutlet var filterView: GPUImageView? var blendImage = GPUImagePicture() Constructor Method required init(coder aDecoder: NSCoder) { let inputImage = UIImage(named:"TestImage.png") self.blendImage = GPUImagePicture(image: inputImage)

    super.init(coder: aDecoder)!
}

Filter Obect

var filterOperation: FilterOperationInterface? { didSet { self.configureView() } }

and at the last Configure view for Image Filter

func configureView() { if let currentFilterConfiguration = self.filterOperation { self.title = currentFilterConfiguration.titleName

        // Configure the filter chain, ending with the view
        if let view = self.filterView {
            switch currentFilterConfiguration.filterOperationType {
            case .SingleInput:
                break

            case .Blend:
                self.blendImage.addTarget((currentFilterConfiguration.filter as! GPUImageInput))
                self.blendImage.processImage()
                currentFilterConfiguration.filter.addTarget(view)
            case let .Custom(filterSetupFunction:setupFunction):
                break
            }
        }

        // Hide or display the slider, based on whether the filter needs it
        if let slider = self.filterSlider {
            switch currentFilterConfiguration.sliderConfiguration {
            case .Disabled:
                slider.isHidden = true

// case let .Enabled(minimumValue, initialValue, maximumValue, filterSliderCallback): case let .Enabled(minimumValue, maximumValue, initialValue): slider.minimumValue = minimumValue slider.maximumValue = maximumValue slider.value = initialValue slider.isHidden = false self.updateSliderValue() } }

    }
}

But result getting a white screen .

screen shot 2018-03-28 at 5 03 21 pm

Sumit-2singh commented 6 years ago

Okay I fixed .