Tuesday, 2 March 2010

Relaxation time

I was reading this article in-between work and play, and thought of having a go myself. So I wrote this little program. This is the outcome.

Top image is original, second left is how it is fed into my filter and then how it comes out. 50% of pixels are missing, yet the result is not bad at all.


Back to my demo now. Got to hurry!

4 comments:

  1. Interesting. I could really use this for an application I'm writing - in fact I'm already working on a super resolution upscaler. My results are promising (8x resolution enhancement if I feed it some low res video, and in realtime :) but when the video source is extremely grainy and unstable it's getting a bit difficult :(

    What method are you using to fill in the blanks? and how long does it take? How does it look when you upscale instead of just removing pixels?

    Hmm.. this could be a good technique, if I can only make it fast enough. If I combine the video frames so that only the 'best pixels' are kept, that should give me a fairly reliable sparse set to work from.. hmmm :)

    ReplyDelete
  2. it probably won't help you, but you can search for "inpainting". It takes alot of time (15-20 secs for this image). I haven't tried upscaling but that's a good idea to try tomorrow.

    ReplyDelete
  3. Ah, a simple inpaint will fill in the holes but it won't scale up well if you're just interpolating. It's just 'plugging the hole' rather than filling in the missing data - to upscale well, you have to recover the lost data in the missing pixels (which also means the data in between the pixels as you scale up, which means recovering lost bandwidth, which means really evil maths :( ).

    This looks like being a hugely interesting field for me, so thanks for bring it up!

    ReplyDelete
  4. yes, I tried it and upscaling with inpainting is as good as a blend of bilinear/nearest point.

    ReplyDelete