February 18, 2016 Generators A generator (as I will use the term here) is an object that can “generate” other objects on demand. They work like random generators,…

February 20, 2013 Pentagons A while back I developed a mild obsession with pentagons (mathematical ones, not symbolistic!) It started when I discovered some beautiful (simple and to me,…

January 24, 2011 2D Minimum and Maximum Filters: Algorithms and Implementation Issues A while back I needed to implement fast minimum and maximum filters for images. I devised (what I thought was) a clever approximation scheme where…

September 30, 2010 Update to Functional Equations Reference (version 1.3) This is a substantial update of this reference document. The most important addition is the chain and substitution rules for arithmetic difference calculus (ADC)….

August 25, 2010 Update to Functional Equations Reference I have updated the Reference for Functional Equations. I have added several entries to the tables, updated the graphs, added some new graphs, added…

July 27, 2010 A Simple Trick for Moving Objects in a Physics Simulation (Original Image by Valerie Everett) It is sometime necessary to move an object in a physics simulation to a specific point. On the one…

June 15, 2010 Region Quadtrees in C++ (Original image by GoAwayStupidAI). Below are four C++ implementations of the region quadtree (the kind used for image compression, for example). The different implementations…

May 12, 2010 Catching Common Image Processing Programming Errors with Generic Unit Tests When implementing image algorithms, I am prone to make these mistakes: swapping x and y; working on the wrong channel; making off-by-one errors, especially…

April 16, 2010 Simple, Fast* Approximate Minimum / Maximum Filters *Fast = not toooo slow… For the image restoration tool I had to implement min and max filters (also erosion and dilation—in this case with a…

April 15, 2010 Experimental Tool for Removing Unwanted Artefacts in Textures Many textures used for 3D art start from photographs. Ideally, such textures should be uniformly lit so that the texture does not interfere with…