From time to time, I get requests for scanning punch cards to text, from various photos or scans of real punch cards. Now, this is actually a tricky business, since there’s also print of all sorts (including logos, instructions, zone markings, etc), the card can be of any color an a background of any color and/or texture (wood grain desktops!), the image may be distorted and of any kind of crop. I once tried to write a general card parser with image upload, however, while it’s actually pretty good on discerning punches, the basic geometry, where the card begins and ends in any dimension (are there any borders included in the particular crop?) is an open issue, especially, since we do not know, at which column punches start and end and which rows are included (are there any punches in row 12 or row 9?). Some further heuristics may help for working out row and column spacings and aspect ratio, but I somewhat lost the impetus. Moreover, even it would work to 95%, we still would have to check each card image manually. So this one is still a work-in-progress and chances are, it will be never finished.
On the other hand, requests are mostly about a single card or just a few of them.
So, why not skip the upload-scanning part and just implement the editor, which is required for corrections anyway? – Isn’t copying data, what computing is all about?
So, here you are, a simple click-your-punches tool to detect/translate data on a punch card with various character sets / encoding schemes:
PS: Suggestions for any further encoding schemes (incl. link to documentation/manual) are welcome!