From 444d3196359be6bb82fdb6a0f5d5ba32fde4118a Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Sun, 14 Jun 2026 18:36:53 +0200 Subject: Initial commit --- site/content/gsoc/otsu2018_4.typ | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 site/content/gsoc/otsu2018_4.typ (limited to 'site/content/gsoc/otsu2018_4.typ') diff --git a/site/content/gsoc/otsu2018_4.typ b/site/content/gsoc/otsu2018_4.typ new file mode 100644 index 0000000..a5d01db --- /dev/null +++ b/site/content/gsoc/otsu2018_4.typ @@ -0,0 +1,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. -- cgit