Image Analogies
The user experiences of Kevin Ruffin
Introduction
Image Analogies is a research project by Aaron Hertzmann et. al. The basic idea
is to take two images as input (A and A') where A' is some transfiguration of A.
The program finds a transformation from A to A' which can be used on a third input,
B, to create B'. B' should be image B with the same styling as in A'. Here is the example given on the website.
This is not a normal renderer type. It does not involve any 3D models. It does,
however, allow for texture synthesis, texture transference, super resolution, and
artistic filters.
Sample Scene
This is one of the creators sample image transformations that I
ran. It took 970 seconds to run. The top two images are A and A' respectively, while
the first bottom is B and the last bottom is the generated B' (from left to right).
Files
The source code and a Windows executable are
downloadable from the Image Analogies site
here. The research paper written about the software is located
here. I attempted to compile the source for OS X but ran into some problems.
Most of the problems were fixed by modifying the makefile, but I think there was a library missing and
I didn't feel like searching through code to find out what.
So I tried the Windows executable
and it worked fine. The program will run on PNG, PPM, or BMP images.
Usage
The program is command line based where the arguments
can be loaded from a file. There is not very much documentation on the various parameters
that can be used. The coders give a set of sample argument files with the parameters
being used, but this is not a substitute for documentation. I assume they expect
the user to have read their paper and source code before using it.
One of the more interesting ways to use the program is to mark parts of the image
with a particular color. Then provide the program with the marked image and original
image to find a transform. The image for B can then be a image made using the particular
colors you provided in A. The following is an example made by
me.
It took 277 seconds to generate this result (argfile)
It took 1140 seconds to generate this one (argfile)
Both of these results were created using the top three images. The only difference
was in the parameters given to the program. It took about an hour and a half to
mark over parts of the wooded image to generate my A image and create my
B. The choice of which
texture pieces should be used in the output image is very artistic in nature. I
created my B image from scratch and had I been more careful with depth of field
my output image would have been much more realistic. I really like the tree in the
output. Because it takes so long to render I didn't play around with the parameters
too much. As I said before the documentation is not very good so
it is primarily up to the user to find out what each parameter does and what the
parameters are. I believe that the html file generated by the program lists each
parameter and it's value, so it is possible to know what they are. I liked the texture
by numbers aspect of this program, so that's what I primarily focused on.
I would recommend this image synthesiser to someone only if they were tech savy
because mom is not going to want to use text files and run it from the command prompt.
Something that would make this program much more useful is if there was a GUI wrapper
for it that allowed the user to see what the parameters are and what effect it will
have by changing them.