Jessica Fridrich Specializes in Problems That Only Seem Impossible to Solve
nytimes.com
nytimes.com
And she was incredibly gracious when I emailed her and asked for assistance and she publishes all her research on her web site (http://www.ws.binghamton.edu/fridrich/). The stuff about identifying digital cameras via sensor noise is really interesting.
I didn't know anything about image processing at all until I read her paper. It took my quite a while to get to grips with all the terminology and ideas. I actually went through that paper line by line as I built my code and looked up every term I didn't understand on Wikipedia and then used links from there to understand what it was all about.
One thing that she needs to be commended on is the clarity of that paper. I was able to follow it and implement her algorithm starting from zero knowledge. She then provided me with the actual images that she had used so that I could verify that my implementation worked.
As with anything I'd suggest finding a project that inspires you and the inspiration will be enough motivation to make you learn anything.
Here's the text we used in my computer vision class, probably the classic in the field:
http://www.amazon.com/Digital-Image-Processing-Rafael-Gonzal...
Learning the specific feature space of digital images is no big deal. You might explore wavelet transformation and different image formats (BMP, JPEG, JPEG2000). Pixel intensity, color, edge detection, high and low pass filtering, connectivity between objects, pattern recognition... there are a lot of topics.
And then there are disciplines built on top of image processing, like face detection, watermarking, image retrieval/search, editing/transformation (think Photoshop)... and of course video is another can of worms, adding time-series data.
There are strong connections between higher-level image processing and statistical AI and data mining, so you might consider exploring those topics too.
Image processing is one of those fields where there is an incredible amount of stuff online, but it is so fragmented, its almost useless to someone who isn't already an expert. A good book builds a consistent set of notation and terminology so that (once you've gotten used to it) you can understand the links and connections between different topics.
If anyone on HN wants a detailed list of _my_ sexual activities my contact information is in my profile. Otherwise I'd be happier if you just looked at my code and writing.
For somebody familiar with Czech names and aware of the timeframe (80s), the name does indeed stand out strongly.
Also wrote the BBC BASIC ROMs used on Acorn computers in 6502, and later BBC BASIC V (five) in ARM. (ARM originally stood for Acorn RISC Machine.) Being able to successfully run the 6502 BASIC ROM is considered a test of how good a 6502 emulator is; his 16KiB of machine code, generated from hand-written assembler, used every trick of the CPU to squeeze in the code. This meant that when the BBC Master 128 came along, with its slightly later 6502 deriative, he could re-write some of it to use the new op-codes, taking less space, and thereby getting in a few more BASIC commands.
http://letmegooglethatforyou.com/?q=emergent+site%3Aovercomi...
-2 for being a dick
Last I checked most of the fastest were still using fridrich based methods. The most common modifications being, double insertion in the F2L stage (solving two corner-edge pairs with one look) and orienting the last-layer edges while solving the last corner-edge pair of the first two layers, this increases the chances of a "one-look" last layer ( there are only 270 unique positions at that stage ).
Some of the fastest are using petrus based methods, but I would say they're strongly outnumbered by fridrich users.