Giter Club home page Giter Club logo

backgroundremoval's Introduction

BackgroundRemoval

Removal results

License Platform Swift

Description

Removal Icon

We depends heavily on Images these days, and sometimes developers need to make processing on these files and one of these things that give us headache is backgorund removal, I really hate that there are so few open source background removal models and libraries so I decided to make this library open source so people can use it, If this suits your need, give it a try ๐Ÿ˜‰

Background removal can give you two different outouts

  • Mask Image: The mask for your input image (black & white) so you can do any processing that you needs
  • Output image: ( default case) your output image without its background

And, it has zero dependencies ๐Ÿ˜Ž

Usage

Output image

To start the background removal on your image you just need to pass a UIImage component to the library and get your output image, only that

let image = UIImage(named: "child")
outputImage.image = BackgroundRemoval.init().removeBackground(image: image!)

The output will always be a UIImage in all cases.

Mask Image

In case you wanted only The mask for your input image (black & white), then you case pass maskOnly arg to the library

let image = UIImage(named: "child")
segmentedImage.image = BackgroundRemoval.init().removeBackground(image: image!, maskOnly: true)

Improve results

you may see some shadows on the edges after you remove the background, you can add some filters on your mask before you mask the input image to get the output result, here is an example of a good tested workaround that gave me a better resutls

let image = UIImage(named: "child")
let scaledOut = BackgroundRemoval.init().removeBackground(image: image!, maskOnly: true)


/// post processing to get rid of image blur
let imageSource = BBMetalStaticImageSource(image: scaledOut)

// Set up some filters for mask post processing
let contrastFilter = BBMetalContrastFilter(contrast: 3)
let sharpenFilter = BBMetalSharpenFilter(sharpeness: 1)

// Set up filter chain
// Make last filter run synchronously
imageSource.add(consumer: contrastFilter)
 //   .add(consumer: lookupFilter)
    .add(consumer: sharpenFilter)
    .runSynchronously = true

// Start processing
imageSource.transmitTexture()

// Get filtered mask
let filteredImage = sharpenFilter.outputTexture?.bb_image

iOS version

The model supports macOS = 11, iOS = 14. however the library currently supports only iOS systems.

Installation

Background Removal is available through Package Manager. To install it, simply copy the url file and click add package in your xcode and paste it:

https://github.com/Ezaldeen99/BackgroundRemoval.git

Author

Ezaldeen sahb, let us connect https://www.linkedin.com/in/ezaldeen-sahb-17918b137/

Contributing

We would love you to contribute to Background Removal, there is still a huge room for improvment.

Credits

The library wouldn't be done without the effort of open source community specially.

License

Project is published under the Apache 2.0 license. Feel free to clone and modify repo as you want, but don't forget to add reference to authors :)

backgroundremoval's People

Contributors

ezaldeen99 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.