Archive for the 'Image Processing' Category

C++, CUDA, Python, and Really Big Cameras

I can’t believe this blog is still here. Amazing. I figured WordPress would close it down by now.

A lot has happened since the last entry. My book was released by O’Reilly (and it’s been doing OK), I came down with a severe case of food poisoning (and ended up in the ICU), and some months later had triple-bypass open-heart surgery (and another stay at the Hotel ICU). Fun times.

Here’s a link to the book, if you’re interested (shameless self-promotion):

and of course it’s also available on Amazon.

Continue reading ‘C++, CUDA, Python, and Really Big Cameras’

Netpbm and the PGM Format – Part 2

This is the second part of a series on processing PGM format image files in Python. For an overview of what PGM is refer to Part 1. In this part we’ll look at how a PGM file is generated and create a few small images to look at. In part 3 of this series we’ll examine some utility functions to write, read and display PGM image data. Lastly, in part 4, we’ll take a look at a case study of how the PGM format was used for scientific CCD camera testing, and offer some suggestions for how you might be able to use it.

Continue reading ‘Netpbm and the PGM Format – Part 2’

Netpbm and the PGM Format – Part 1

In this series of articles I’ll introduce the Netpbm suite of tools and its simple and versatile PGM image file format, and demonstrate how PGM can be used for image processing and arbitrary data storage in Python.

In this part we meet Netpbm and its PGM file format. In the next installment I’ll present some Python code to read and write a PGM file. Later on I’ll present a simple image viewer to display the data, and lastly, I’ll present some unconventional techniques for storing things other than actual images in the PGM format, along with some reasons for why one might want to do that.

Continue reading ‘Netpbm and the PGM Format – Part 1’

Free PNG Book Available On-Line

I recently stumbled across this whilst sifting through the Weird Wild Web:

The Definitive Guide
Greg Roelofs
O’Reilly 1999


Released under the GNU Free Documentation License, V1.1.

If you deal with image processing software then you really need to know about PNG. Superior to JPEG for images containing sharp edges and step gradients (i.e. line art and such), PNG uses a non-patented lossless data compression method. While it won’t compress down as much as JEPG, it also doesn’t suffer from high-frequency signal loss, generation loss and compression artifacts (checkerboarding and such). Also see the Wikipedia article on PNG:

Follow Crankycode on

Little Buddy

An awesome little friend

Jordi the Sheltie passed away in 2008 at the ripe old age of 14. He was the most awesome dog I've ever known.