Image artifacts identification/removal

Joel Sjögren

0

Photo Editor

Jupyter

OpenCV

Some large number of images had been scanned with high quality - except for visible gray streaks running through the images. My task was to devise an algorithm that would identify where exactly these streaks were located, so that they could be selectively removed (using inpainting or just simply selective blurring).
I analyzed the problem, and tried several methods for solving the constituent parts of the problem, until I found a good solution. Then I translated it fully onto the GPU using OpenCV's GPU-accelerated bindings for Python. I also learned that pre-allocating certain crucial segments of memory on the GPU made for a 2.5x speedup in those parts of the program.
The code built upon an algorithm for automatic image rotation that I had come up with prior to this project. A notebook with that "autorotation" algorithm is shown below.
This is the review given by my client:
“Splendid job! Joel had a great solution in mind before starting. They defined what the final output would look like and continually iterated on it making the result better each day. They optimized the code with little to no prompting and (in my mind) went above and beyond for the project. Joel is talented and results-oriented; I’d be happy to work together again in the future.”
Like this project
0

Posted Aug 30, 2023

Solving an image processing task...

Likes

0

Views

18

Tags

Photo Editor

Jupyter

OpenCV

Converting intricate material from Blender to Unreal Engine
Converting intricate material from Blender to Unreal Engine
Helmert coordinate transformation in VB.net
Helmert coordinate transformation in VB.net