summaryrefslogtreecommitdiff
path: root/site/content/gsoc/otsu2018_4.typ
blob: a5d01db617e6301d2e76ad3ed88366ff0e354c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import "/common.typ": post, link-self, static, img

#show: post.with(
    title: "Otsu et al. (2018), part 4",
    date: datetime(year: 2020, month: 8, day: 10),
)

In the #link-self("gsoc/otsu2018_3")[previous part] I mentioned that reflectances reconstructed using this method can exceed the [0, 1] range and violate conservation of energy. Indeed, I could simply ask it for an imaginary color and get a weird, unphysical spectrum.

What's interesting is that this doesn't happen in practice, when upsampling real data. Out of almost 1300 reflectances I tested, I found only one bad reconstruction. Using the original clustering, the result for `magenta` from `BabelColor Average` colorchecker reflects 100,6% of light at 730 nm. Clipping this value to 100% creates a tiny color difference, orders of magnitude smaller than the #link("https://en.wikipedia.org/wiki/Just-noticeable_difference")[just-noticeable difference].

#figure(
  img(static("gsoc/otsu2018_error.png")),
  caption: [You can see the small difference between the clipped and unclipped reflectances in the upper right corner of the figure. (Click to enlarge.)],
)

Many methods have this property of being able to create perfect metamers, so looking at ΔE's isn't very interesting. In a future post I'll take a look at MSE (mean square error), which quantifies differences between spectra themselves, and compare a few methods.