Project 1: Color Alignment
cs195-g: Computational Photography Patrick Doran
Spring 2010 pdoran
Directory
Metric: Sum of Squared Differences
The results on this page were computed using the sum of squared differences between of each of the channels. This should generally produce bad results when pixels are mostly one color and less another (e.g. an entirely blue pixel will have a large distance from the red and green color plates). However, as shown below, this metric works well enough to align the images. That would suggest that the images are sufficiently balanced such that dark areas are dark in all channels and light areas are light in all channels or that enough of the image have similar values in all channels to override those differences.
Results
Stats Legend
     image ##: file name
         size: [ vertical x horizontal ]
  green->blue: shift [ vertical, horizontal ]
    red->blue: shift [ vertical, horizontal ]
       border: crop [ top, left, bottom, right ]
         gray: [ 'assumed' gray value ]
      balance: scale [ red, green, blue ]
   normalizer: [ normalizes rgb values ]
          hue: threshold [ low, high ]
   saturation: threshold [ low, high ]
        value: threshold [ low, high ] 
Original Stats Without White Balance With White Balance

Full Size
Without white balance:
     image 01: 00125v.jpg
         size: [ 341 x 400 ]
  green->blue: [      5,      2 ]
    red->blue: [     10,      1 ]
       border: [     26,     26,    339,    387 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.1607, 0.8283 ]
        value: [ 0.1686, 0.9059 ] 
With white balance:
         gray: [ 118.37 ]
      balance: [ 1.2200, 0.8562, 0.9878 ]
   normalizer: [ 311.10 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.1023, 0.8472 ]
        value: [ 0.1412, 0.7451 ] 

Full Size

Full Size

Full Size
Without white balance:
     image 02: 00149v.jpg
         size: [ 341 x 397 ]
  green->blue: [      4,      2 ]
    red->blue: [      9,      2 ]
       border: [     27,     26,    324,    378 ]
          hue: [ 0.0000, 0.9987 ]
   saturation: [ 0.0202, 0.8219 ]
        value: [ 0.1255, 0.9804 ]
With white balance:
         gray: [ 133.45 ]
      balance: [ 0.8946, 1.0635, 1.0617 ]
   normalizer: [ 271.19 ]
          hue: [ 0.0000, 0.9983 ]
   saturation: [ 0.0314, 0.8219 ]
        value: [ 0.1176, 0.9647 ]

Full Size

Full Size

Full Size
Without white balance:
     image 03: 00153v.jpg
         size: [ 341 x 394 ]
  green->blue: [      7,      3 ]
    red->blue: [     -4,     14 ]
       border: [     11,     40,    328,    381 ]
          hue: [ 0.0000, 0.9991 ]
   saturation: [ 0.0963, 0.9811 ]
        value: [ 0.3882, 0.9059 ]
With white balance:
         gray: [ 118.37 ]
      balance: [ 1.2200, 0.8562, 0.9878 ]
   normalizer: [ 311.10 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.1023, 0.8472 ]
        value: [ 0.1412, 0.7451 ]

Full Size

Full Size

Full Size
Without white balance:
     image 04: 00154v.jpg
         size: [ 341 x 398 ]
  green->blue: [      5,      0 ]
    red->blue: [     11,     -2 ]
       border: [      1,     25,    333,    381 ]
          hue: [ 0.0000, 0.9991 ]
   saturation: [ 0.0860, 0.9550 ]
        value: [ 0.2039, 0.9686 ]
With white balance:
         gray: [ 140.75 ]
      balance: [ 0.8407, 0.9059, 1.4150 ]
   normalizer: [ 359.40 ]
          hue: [ 0.0000, 0.9985 ]
   saturation: [ 0.0388, 0.9419 ]
        value: [ 0.1255, 0.9725 ]

Full Size

Full Size

Full Size
Without white balance:
     image 05: 00163v.jpg
         size: [ 341 x 387 ]
  green->blue: [     -3,      1 ]
    red->blue: [     -4,      1 ]
       border: [     54,     10,    329,    377 ]
          hue: [ 0.0000, 0.9986 ]
   saturation: [ 0.0131, 0.9211 ]
        value: [ 0.1255, 0.9686 ]
With white balance:
         gray: [ 107.87 ]
      balance: [ 0.9738, 0.9797, 1.0500 ]
   normalizer: [ 267.75 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.0494, 0.9167 ]
        value: [ 0.1216, 0.9686 ]

Full Size

Full Size

Full Size
Without white balance:
     image 06: 00270v.jpg
         size: [ 341 x 404 ]
  green->blue: [      3,      1 ]
    red->blue: [     12,      1 ]
       border: [     16,     26,    330,    379 ]
          hue: [ 0.0000, 0.9986 ]
   saturation: [ 0.0692, 0.9200 ]
        value: [ 0.0863, 0.9569 ]
With white balance:
         gray: [ 125.39 ]
      balance: [ 1.2036, 0.9813, 0.8695 ]
   normalizer: [ 296.07 ]
          hue: [ 0.0000, 0.9986 ]
   saturation: [ 0.0183, 0.9101 ]
        value: [ 0.0745, 0.8235 ]

Full Size

Full Size

Full Size
Without white balance:
     image 07: 00398v.jpg
         size: [ 341 x 397 ]
  green->blue: [      5,      3 ]
    red->blue: [     11,      4 ]
       border: [     23,     19,    340,    375 ]
          hue: [ 0.0000, 0.9984 ]
   saturation: [ 0.0177, 0.6962 ]
        value: [ 0.1451, 0.9569 ]
With white balance:
         gray: [ 166.80 ]
      balance: [ 0.9303, 1.0079, 1.0719 ]
   normalizer: [ 273.34 ]
          hue: [ 0.0000, 0.9981 ]
   saturation: [ 0.0702, 0.6667 ]
        value: [ 0.1255, 0.9569 ]

Full Size

Full Size

Full Size
Without white balance:
     image 08: 00458u.jpg
         size: [ 3238 x 3741 ]
  green->blue: [     43,      6 ]
    red->blue: [     87,     32 ]
       border: [    210,     65,   3179,   3698 ]
          hue: [ 0.0000, 0.9993 ]
   saturation: [ 0.0000, 0.9959 ]
        value: [ 0.0667, 0.9647 ]
With white balance:
         gray: [ 164.85 ]
      balance: [ 0.9941, 1.0105, 0.9955 ]
   normalizer: [ 252.63 ]
          hue: [ 0.0000, 0.9993 ]
   saturation: [ 0.0082, 0.9959 ]
        value: [ 0.0667, 0.9804 ]

Full Size

Full Size

Full Size
Without white balance:
     image 09: 00564v.jpg
         size: [ 341 x 392 ]
  green->blue: [      5,      0 ]
    red->blue: [     11,      0 ]
       border: [     11,     11,    328,    370 ]
          hue: [ 0.0000, 0.9986 ]
   saturation: [ 0.0437, 1.0000 ]
        value: [ 0.0510, 0.9686 ]
With white balance:
         gray: [ 105.78 ]
      balance: [ 1.1674, 0.8955, 0.9740 ]
   normalizer: [ 297.68 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.0833, 1.0000 ]
        value: [ 0.0431, 0.8118 ]

Full Size

Full Size

Full Size
Without white balance:
     image 10: 00911u.jpg
         size: [ 3254 x 3768 ]
  green->blue: [     13,     -7 ]
    red->blue: [    126,    -13 ]
       border: [    218,     32,   3225,   3716 ]
          hue: [ 0.0000, 0.9992 ]
   saturation: [ 0.0163, 0.9426 ]
        value: [ 0.0941, 0.9569 ]
With white balance:
         gray: [ 157.25 ]
      balance: [ 0.9844, 1.0051, 1.0109 ]
   normalizer: [ 250.71 ]
          hue: [ 0.0000, 0.9992 ]
   saturation: [ 0.0285, 0.9431 ]
        value: [ 0.0941, 0.9843 ]

Full Size

Full Size

Full Size
Without white balance:
     image 11: 01043u.jpg
         size: [ 3202 x 3712 ]
  green->blue: [    -15,     10 ]
    red->blue: [     11,     18 ]
       border: [     97,    156,   3158,   3555 ]
          hue: [ 0.0000, 0.9992 ]
   saturation: [ 0.0385, 0.8750 ]
        value: [ 0.1725, 0.9216 ]
With white balance:
         gray: [ 113.87 ]
      balance: [ 0.8337, 1.1545, 1.0702 ]
   normalizer: [ 289.78 ]
          hue: [ 0.0000, 0.9988 ]
   saturation: [ 0.0414, 0.8507 ]
        value: [ 0.1333, 0.8745 ]

Full Size

Full Size

Full Size
Without white balance:
     image 12: 01047u.jpg
         size: [ 3218 x 3741 ]
  green->blue: [     24,     20 ]
    red->blue: [     71,     33 ]
       border: [     86,    182,   3192,   3552 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.0769, 0.7719 ]
        value: [ 0.1725, 0.8471 ]
With white balance:
         gray: [ 106.33 ]
      balance: [ 0.8500, 1.1509, 1.0475 ]
   normalizer: [ 291.17 ]
          hue: [ 0.0000, 0.9984 ]
   saturation: [ 0.0217, 0.7727 ]
        value: [ 0.1333, 0.8039 ]

Full Size

Full Size

Full Size
Without white balance:
     image 13: 01167v.jpg
         size: [ 341 x 394 ]
  green->blue: [      5,      0 ]
    red->blue: [     12,     -2 ]
       border: [     11,     14,    329,    369 ]
          hue: [ 0.0000, 0.9973 ]
   saturation: [ 0.0340, 0.7737 ]
        value: [ 0.2706, 0.9255 ]
With white balance:
         gray: [ 151.76 ]
      balance: [ 1.2603, 0.9171, 0.8960 ]
   normalizer: [ 321.38 ]
          hue: [ 0.0000, 0.9979 ]
   saturation: [ 0.0276, 0.7348 ]
        value: [ 0.2118, 0.8902 ]

Full Size

Full Size

Full Size
Without white balance:
     image 14: 01657u.jpg
         size: [ 3212 x 3761 ]
  green->blue: [     55,      8 ]
    red->blue: [    114,     12 ]
       border: [    111,    180,   3084,   3627 ]
          hue: [ 0.0000, 0.9991 ]
   saturation: [ 0.0491, 0.8851 ]
        value: [ 0.2039, 0.9529 ]
With white balance:
         gray: [ 124.55 ]
      balance: [ 0.9059, 1.1410, 0.9807 ]
   normalizer: [ 279.54 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.0290, 0.8770 ]
        value: [ 0.1765, 0.9216 ]

Full Size

Full Size

Full Size
Without white balance:
     image 15: 01861a.jpg
         size: [ 3228 x 3741 ]
  green->blue: [     71,     38 ]
    red->blue: [    126,     62 ]
       border: [    153,    126,   3185,   3613 ]
          hue: [ 0.0000, 0.9992 ]
   saturation: [ 0.0162, 0.8519 ]
        value: [ 0.1804, 0.9569 ]
With white balance:
         gray: [ 142.61 ]
      balance: [ 0.8901, 0.9917, 1.1519 ]
   normalizer: [ 293.74 ]
          hue: [ 0.0000, 0.9989 ]
   saturation: [ 0.0235, 0.8481 ]
        value: [ 0.1608, 0.9412 ]

Full Size

Full Size

Full Size
Without white balance:
     image 16: 31421v.jpg
         size: [ 341 x 398 ]
  green->blue: [      8,      0 ]
    red->blue: [     13,      0 ]
       border: [     11,     20,    310,    377 ]
          hue: [ 0.0000, 0.9967 ]
   saturation: [ 0.0463, 0.8462 ]
        value: [ 0.0627, 0.8510 ]
With white balance:
         gray: [ 137.38 ]
      balance: [ 1.0968, 1.0633, 0.8712 ]
   normalizer: [ 239.10 ]
          hue: [ 0.0000, 0.9977 ]
   saturation: [ 0.0154, 0.8611 ]
        value: [ 0.0667, 0.9020 ]

Full Size

Full Size