
Recent Posts
 Gradientdescent optimized recursive filters for deconvolution / deblurring September 5, 2022
 Progressive image stippling and greedy blue noise importance sampling August 31, 2022
 Removing blur from images – deconvolution and using optimized simple filters May 26, 2022
 Transforming “noise” and random variables through nonlinearities March 16, 2022
 Fast, GPU friendly, antialiasing downsampling filter March 7, 2022
Categories
Tag Archives: python
Gradientdescent optimized recursive filters for deconvolution / deblurring
This post is a followup to my post on deconvolution/deblurring of the images. In my previous blog post, I discussed the process of “deconvolution” – undoing a known convolution operation. I have focused on traditional convolution filters – “linear phase, … Continue reading
Posted in Code / Graphics
Tagged algorithms, digital signal processing, graphics, graphics programming, image processing, jax, maths, numpy, python, signal processing
Leave a comment
Progressive image stippling and greedy blue noise importance sampling
Introduction I recently read the “Gaussian Blue Noise” paper by Ahmed et al. and was very impressed by the quality of their results and the rigor of their method. They provide a theoretical framework to analyze the quality of blue … Continue reading
Posted in Code / Graphics
Tagged algorithms, blue noise, dithering, graphics, graphics programming, image processing, jax, programming, python, sampling
3 Comments
Transforming “noise” and random variables through nonlinearities
This post covers a topic slightly different from my usual ones and something I haven’t written much about before – applied elements of probability theory. We will discuss what happens with “noise” – a random variable – when we apply … Continue reading
Posted in Code / Graphics
Tagged blue noise, graphics, graphics programming, image processing, jax, mathematics, maths, noise, programming, python
Leave a comment
Study of smoothing filters – SavitzkyGolay filters
Last week I saw Daniel Holden tweeting about SavitzkyGolay filters and their properties (less smoothing than a Gaussian filter) and I got excited… because I have never heard of them before and it’s an opportunity to learn something. When I … Continue reading
Posted in Code / Graphics
Tagged algorithms, digital signal processing, image processing, maths, python, signal processing
Leave a comment
Superfast voidandcluster Blue Noise in Python (Numpy/Jax)
This is a super short blog post to accompany this Colab notebook. It’s not an official part of my dithering / Blue Noise post series, but thematically fits it well and be sure to check it out for some motivation … Continue reading
Posted in Code / Graphics
Tagged blue noise, dithering, graphics programming, jax, numpy, python
2 Comments
Converting wavetables to Ableton Operator AMS waves
This blog post comes with Ableton Operator AMS “wavetables” here. In Ableton’s FM synth you can use different types of oscillator waves as your operators (both carriers as well as modulators), as well as draw custom ones: What is not … Continue reading
Posted in Audio / Music / DSP
Tagged ableton, digital signal processing, dsp, fourier, frequency domain, numpy, python, synthesis
3 Comments
“Optimizing” blue noise dithering – backpropagation through Fourier transform and sorting
Introduction This will be a blog post that is second in an (unanticipated) series on interesting uses of the JAX numpy autodifferentiation library, as well as an extra post in my very old post series on dithering in games and … Continue reading
Posted in Code / Graphics
Tagged blue noise, dithering, frequency domain, image processing, jax, machine learning, noise, numpy, python
6 Comments
Using JAX, numpy, and optimization techniques to improve separable image filters
In today’s blog post I will look at two topics: how to use JAX (“hyped” new Python ML / autodifferentiation library), and a basic application that is followup to my previous blog post on using SVD for lowrank approximations and … Continue reading
Posted in Code / Graphics
Tagged bokeh, colab, github, graphics programming, image processing, jax, machine learning, maths, numpy, postprocessing, programming, python
11 Comments
Separate your filters! Separability, SVD and lowrank approximation of 2D image processing filters
In this blog post, I explore separable convolutional image filters: how can we check if a 2D filter is separable, and how to compute separable approximations to any arbitrary 2D filter represented in a numerical / matrix form using SVD. Continue reading
Posted in Code / Graphics
Tagged algorithms, approximation, blur, bokeh, depth of field, graphics, image processing, linear algebra, numpy, optimizations, postprocessing, python
15 Comments
Analyze your own activity data using Google Takeout – music listening stats example
The goal of this post is to show how to download our own data stored and used by internet services to generate personalized stats / charts like below and will show stepbystep how to do it using colab, Python, pandas, … Continue reading
Posted in Code / Graphics
Tagged colab, data, numpy, programming, python, statistics, visualization
Leave a comment
Local linear models and guided filtering – an alternative to bilateral filter
Intro In this blog post I am going to describe an alternative tool for the graphics and image processing programmers’ toolbox – guided filtering. Guided filtering is a really handy tool that I learned about from my coworkers, and I … Continue reading
Posted in Code / Graphics
Tagged bilateral, graphics, image processing, machine learning, postprocessing, python, signal processing, ssao, upsampling
7 Comments
Python as scientific toolbox – 8 months later
I started this blog with a simple post about my attempts to find free Mathematica replacement tool for general scientific computing with focus on graphics. At that time I recommended scientific Python and WinPython environment. Many months have passed, I … Continue reading
Posted in Code / Graphics
Tagged algorithms, Anaconda, mathematica, python, sublime text, tools, winpython
1 Comment
Updated Poissonlike generator with GUI and more
Just a super short note: I updated my simple renderingoriented Poissonlike pattern generator with: Very simple GUI made in PyQt to make experimenting easier. Option to do rotating disk (with minimizing rotated point distance) for things like Poisson bokeh / … Continue reading
Posted in Code / Graphics
Tagged algorithms, Anaconda, antialiasing, graphics programming, mathematica, poisson, programming, pyqt, python, stochastic
Leave a comment
Poisson disk/square sampling generator for rendering
I have just submitted onto GitHub small new script – Poissonlike distribution sampling generator suited for various typical rendering scenarios. Unlike other small generators available it supports many sampling patterns – disk, disk with a central tap, square, repeating grid. It … Continue reading
Posted in Code / Graphics
Tagged algorithms, Anaconda, programming, python, stochastic, supersampling, temporal, tools, winpython
Leave a comment
On pursuit of (good) free mathematics toolbox
Introduction Mathematics are essential part of (almost?) any game programmers work. It was always especially important in work of graphics programmers – all this lovely linear algebra and analytic geometry! – but with more powerful hardware and more advanced GPU … Continue reading
Posted in Code / Graphics
Tagged graphics programming, mathematica, mathematics, python, sublime text, winpython
1 Comment
You must be logged in to post a comment.