Code : Congealing Complex Images


  • All source code is provided under a (revised, advertising-clause free) BSD-style license: terms of license.
  • Please cite the ICCV paper below if you use this code.


    • This is the most update to date version of the code. Included are minor bug fixes and compatibility fixes with openCV.

    • Below is an archive of the code as it was when the paper was published. It's recommended you use the up to date version of the code, which implements the same algorithm as described in the paper but includes fixes for issues outside of what was explicitly tested in the paper (e.g., using a version of openCV greater than 1.0, or a cropping region with height greater than width).


  • car data set
  • face funnel
    • Learned from congealing 800 faces from the LFW database.
      (Uncompress and use as the second argument to funnelReal. The outer and inner dimensions are the default values (150x150 and 100x100) so they do not need to be provided to funnelReal.)

Change history:

Moved code to public repository on
Version 1.0 released, containing congealReal.cpp, funnelReal.cpp, and README.txt.
Car data set (cars.tgz) and face funnel (people.train.tgz) released as well.


  • Gary B. Huang, Vidit Jain, and Erik Learned-Miller.
    Unsupervised joint alignment of complex images.
    International Conference on Computer Vision (ICCV), 2007.
    [pdf] [project page]