All Projects → fogleman → Rbgg

fogleman / Rbgg

Licence: mit
Isolate and remove the background gradient from images of paper.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Rbgg

Opencv
Open Source Computer Vision Library
Stars: ✭ 58,652 (+21228%)
Mutual labels:  image-processing
High Quality Ellipse Detection
A high-quality ellipse detector based on arc-support line segments which can both accurately and efficiently detect ellipses in images.
Stars: ✭ 261 (-5.09%)
Mutual labels:  image-processing
Primify
Embed any image into a prime number.
Stars: ✭ 266 (-3.27%)
Mutual labels:  image-processing
Photoeditor
A Photo Editor library with simple, easy support for image editing using paints,text,filters,emoji and Sticker like stories.
Stars: ✭ 3,105 (+1029.09%)
Mutual labels:  image-processing
Popsift
PopSift is an implementation of the SIFT algorithm in CUDA.
Stars: ✭ 259 (-5.82%)
Mutual labels:  image-processing
Shadesketch
Implementation of "Learning to Shadow Hand-drawn Sketches" CVPR 2020 (Oral)
Stars: ✭ 263 (-4.36%)
Mutual labels:  image-processing
Computer Vision Guide
📖 This guide is to help you understand the basics of the computerized image and develop computer vision projects with OpenCV. Includes Python, Java, JavaScript, C# and C++ examples.
Stars: ✭ 244 (-11.27%)
Mutual labels:  image-processing
Slicer
Multi-platform, free open source software for visualization and image computing.
Stars: ✭ 263 (-4.36%)
Mutual labels:  image-processing
Photoflare
Quick, simple but powerful Cross Platform image editor.
Stars: ✭ 260 (-5.45%)
Mutual labels:  image-processing
Imager
Automated image compression for efficiently distributing images on the web.
Stars: ✭ 266 (-3.27%)
Mutual labels:  image-processing
Ai Job Notes
AI算法岗求职攻略(涵盖准备攻略、刷题指南、内推和AI公司清单等资料)
Stars: ✭ 3,191 (+1060.36%)
Mutual labels:  image-processing
Rawpy
📷 RAW image processing for Python, a wrapper for libraw
Stars: ✭ 256 (-6.91%)
Mutual labels:  image-processing
Otb
Github mirror of https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb
Stars: ✭ 265 (-3.64%)
Mutual labels:  image-processing
Menyoki
Screen{shot,cast} and perform ImageOps on the command line 🌱 🏞️
Stars: ✭ 255 (-7.27%)
Mutual labels:  image-processing
Androiddocumentscanner
This library helps to scan a document like CamScanner.
Stars: ✭ 264 (-4%)
Mutual labels:  image-processing
Buildopencvtx2
Build and install OpenCV for the NVIDIA Jetson TX2
Stars: ✭ 249 (-9.45%)
Mutual labels:  image-processing
Opencv Python Blueprints
M. Beyeler (2015). OpenCV with Python Blueprints: Design and develop advanced computer vision projects using OpenCV with Python, Packt Publishing Ltd., ISBN 978-178528269-0.
Stars: ✭ 262 (-4.73%)
Mutual labels:  image-processing
Optimizedimageenhance
Several image/video enhancement methods, implemented by Java, to tackle common tasks, like dehazing, denoising, backscatter removal, low illuminance enhancement, featuring, smoothing and etc.
Stars: ✭ 272 (-1.09%)
Mutual labels:  image-processing
Image Adaptive 3dlut
Learning Image-adaptive 3D Lookup Tables for High Performance Photo Enhancement in Real-time
Stars: ✭ 267 (-2.91%)
Mutual labels:  image-processing
Selene
A C++17 image representation, processing and I/O library.
Stars: ✭ 266 (-3.27%)
Mutual labels:  image-processing

rbgg

Isolate and remove the background gradient from images of paper.

Example

Steps

Motivation

One of my hobbies is using a pen plotter to make computer-generated drawings. I often take pictures of these drawings to post online, but it's hard to get even, consistent lighting across the entire photo. Instead of trying to perfect the lighting, I wrote this software to clean up the images for me.

Installation

$ go get -u github.com/fogleman/rbgg

Usage

$ rbgg input.jpg

How it Works

For every pixel in the image, we analyze its neighborhood (a box centered on the pixel, with size 5% x 5% of the image size by default) to determine the paper intensity in that region. The 90th percentile brightness is selected by default. The pixel is rescaled to bring this window brightness up to the target brightness. This algorithm will have trouble if certain regions are mostly ink (rather than mostly paper) and can still leave some "vignetting" at the corners of the image. Analyzing a 5% x 5% region around every pixel naively would be very slow - so the code uses some tricks to do this more efficiently.

Another Example

Works well for notes and maybe whiteboards too. Obviously software for this purpose already exists but sometimes you just gotta write your own tools so you can fine tune them for your own needs!

Example

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].