Posts Tagged ‘algorithms’

Content Aware Image Resizing

Tuesday, October 30th, 2007

A friend at work just showed me this, and boy is it cool. “Seam Carving” is a new algorithm for image retargeting. Image retargeting is an alternative to scaling and cropping, but it is content-aware. Scaled images suffer from the problem that the re-sized content may be too small to see. Cropped images may eliminate important content. Image retargeting solves both problems by keeping the image elements the same size and simply eliminating the “unimportant” parts of the image.

Graphic artists occasionally modify images this way by hand when doing page layouts for magazines–think of it like a visual form of copy-fitting–but an automated approach opens a world of possibilities. The number of of potential practical applications are immense, and include everything from dynamic web page re-flowing to widescreen-to-standard aspect texture fitting for games.

[youtube:http://www.youtube.com/watch?v=vIFCV2spKtg 350 292]
A better version of the video as well as the research paper can be found on Dr. Shamir’s home page. What’s really neat is how straight-forward the method seems to be. The paper is well worth the read if you are interested in graphics algorithms.

If you’d like to play around with this technique on your own images, someone’s already implemented the algorithm in Flash.

Build a $2 Computer

Monday, October 1st, 2007

In 1936, Alan Turing conceived of a machine that helped lay the groundwork for modern computing. These extremely simple machines, dubbed Turing machines, are in theory able to simulate the logic of any known computer that can possibly be constructed. While Turing originally conceived of his machine only as a thought exercise and never constructed it, it is possible to build and program a simple version of Turing’s computer for only a few dollars worth of basic office supplies.

This is a fun afternoon project for all ages, and a great way to introduce both kids and adults to the fundamentals of computer programming.

(more…)