Remove the background from an image with this Linux command

Skip to main content User account menu Log in RSS Main navigation Articles Resources What is open source? The open source way Projects and applications Organizations Open source alternatives Alternatives to Acrobat Alternatives to AutoCAD Alternatives to Dreamweaver Alternatives to Gmail Alternatives to MATLAB Alternatives to Minecraft Alternatives to Google Photos Alternatives to Photoshop Alternatives to Skype Alternatives to Slack Alternatives to Trello More… Linux Downloads Frequently Asked Questions Search Remove the background from an image with this Linux command The power of Python makes image editing easy on Linux. By Don Watkins (Correspondent) April 10, 2023 | 3 Comments | %t min read 7 readers like this. You have a great picture of yourself and want to use it for your social media profile, but the background is distracting. Another picture has a perfect background for your profile picture. How do you combine the two? Some smartphone apps that do this kind of photo manipulation but are too expensive or are riddled with ad-ware. And they aren’t open source. Rembg is up to the challenge! Rembg is written in Python, so install Python 3 on your computer. Most Linux distributions include Python 3 by default. You can check your version with this simple command: $ python3 –version Rembg requires at least Python 3.7 and no greater than Python 3.11. In my case, I have Python 3.10.6 installed. Install Rembg on Linux I created a directory called PythonCoding on my Linux laptop and then made a Python virtual environment: $ python3 -m venv /home/don/PythonCoding Next, I installed rembg using pip: $ python3 -m pip install rembg Combine images Time to work some magic. First, I chose the image containing a picture taken at All Things Open in 2019. Image by: (Don Watkins, CC BY-SA 4.0) I ran the following rembg command to rename it with a shorter filename for convenience: $ rembg i dgw_ato.jpeg dgw_noback.jpg The first time you run rembg, it downloads an open source pattern recognition model. This can be over 100 MB and rembg saves it in your user directory as ~/.u2net/u2net.onnx. The model is the U-2-Net and uses the Apache 2.0 license. For more information about the pattern recognition models (including how to train your own), read the Rembg documentation. It created my new photo without the background in about ten seconds. I have a Ryzen 7 with 16 GB of RAM. Your experience may vary depending on your hardware. Image by: (Don Watkins, CC BY-SA 4.0) Skip to bottom of list More Linux resources Linux commands cheat sheet Advanced Linux commands cheat sheet Free online course: RHEL technical overview Linux networking cheat sheet SELinux cheat sheet Linux common commands cheat sheet What are Linux containers? Register for your free Red Hat account Our latest Linux articles I have used GIMP to remove backgrounds in the past, but rembg does it quicker and more completely than I have experienced with GIMP. That’s all there is to removing a background. What about adding a new one? Add a new background Next, I want to add a new background to the picture. There are different ways to do that. You can, for instance, combine images with ImageMagick, but getting the frame size right can be complex. The easiest way is to use GIMP or Krita. I used GIMP. First, open the newly created image (ato_image.jpg in my case). Now go to the File menu and select Open as layers. Choose a different image for the background. This image opens as an overlay above the existing photo. I wanted to move the new background below my portrait. On the right of the GIMP window are two thumbnails, one for each image layer. The background layer is on top. I dragged the background layer beneath my portrait image, and here’s the result: Image by: (Don Watkins, CC BY-SA 4.0) That’s a much nicer setting for my profile picture! Try Rembg Rembg has three subcommands you can review in the –help menu: $ rembg –help They are: rembg i for files rembg p for folders rembg s for HTTP server Rembg is released with an MIT license. Try it the next time you need a background removed from an image. What to read next Tags Python Linux Art and design Don Watkins Educator, entrepreneur, open source advocate, lifelong learner, Python teacher. M.A. in Educational Psychology, M.S. Ed. in Educational Leadership, Linux system administrator. More about me 3 Comments These comments are closed. pghpete | April 10, 2023 No readers like this yet. Thanks for the write up on this utility. I’d love to try it but unfortunately it appears it has a python restriction that all of my modern systems fall outside of the bounds of what it expects. python: >3.7, <3.11 COD | April 10, 2023 No readers like this yet. That works amazingly well. Thanks for sharing. Eric F | April 11, 2023 1 reader likes this. It seems like a really cool and useful tool. I will try this one later. Thanks for sharing! 👍 Related Content Retry your Python code until it fails How I teach Python with open source tools Explore data visually with Python tools This work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License. About This Site The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat. Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. Red Hat and the Red Hat logo are trademarks of Red Hat, Inc., registered in the United States and other countries. A note on advertising: Opensource.com does not sell advertising on the site or in any of its newsletters. Copyright © 2021 Red Hat, Inc. Legal Privacy Policy Terms of use


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *