Hi Jolyon & Cedric!
I’m able to get pretty high R^2 values for UV+VIS camera calibration (R^2 >0.98) using a pastel “chart”, but I must be scaling my spectra incorrectly, because the output cone catch images are always incredibly grey/washed-out. Cedric helped me realize earlier that my processing in pavo (I was averaging multiple spectra for each pastel together) was doing a negative value correction (“addmin”) that was causing my values to exceed 100, but now that I\’ve fixed that and have 0-100 range for my spectra files, I still have the same problem. I’ve tried every combination of negative value correction and scaling I could come up with (0-100 scaling for % reflectance, 0-1 scaling for normalized reflectance per the XRite spectra that come with micaToolbox, and all the different negative value correction options for processing in pavo including leaving them in), but still run into the same issue.
I was wondering if you have an example of the pastel spectra & mspec image that were used to make one of the UV camera calibrations that come with the package, so I could see where I’m going wrong? Alternatively, if anything from my above description sounds like we’re approaching this problem wildly wrong, that would also be great to know…so close to finally getting this calibration to work!
great – glad you got it working! What are the R^2 values like? You’re correct about ImageJ’s viewing range. For any other readers: you can alter the viewing brightness and contrast any time without changing the pixel values themselves – just go edit -> Brightness/contrast and play with the values, or set them to a sensible range manually.
R^2 values are quite good– all >0.98 when I do bluetit 300-700 nm (or >0.99 if I do 3 interaction terms). Unlike last time, where images were grey & washed out no matter how we set the range, these look as expected.
I think Jolyon would be able to help you better than me, but:
“the output cone catch images are always incredibly grey/washed-out”
This, to me does indeed sound like there’s a discrepancy between what your camera is doing and what you are telling the toolbox the camera is supposed to do / what it is looking at (via your camera sensitivities / reflectance values / etc.). I don’t work with chart calibrations at all, and as such can’t really pinpoint to the source of your error, apologies.
Have you tried processing your reflectance measurements outside of pavo to exclude that as a potential source of error?
Sorry I can’t be of more help at this stage.
Hmm tricky (sorry for slow reply – hectic time of year!=!)
If the R^2 values are good then I really don’t know. When you run the pastel code through the image of the actual pastels does it look washed out? Linear cone-catch image do look weird, so just measure the values of the actual pastels in the cone-catch output and see whether they look ok. If you manually change the brightness/contrast (CTRL+SHIFT+C) can you make the image look good? It could just be a viewing contrast range issue.
Also, there are various issues with the latest version of ImageJ that I need to try to fix, in the meantime try going help>update> and select version 1.52. See if this fixes anything.
Thanks for your wisdom here! Even just knowing that it’s not something trivial is very reassuring…I’ve been really stumped on this for weeks.
Sadly, adjusting the contrast and going to ImageJ 1.52 didn’t help. Since we’re able to use the XRite colorchecker to calibrate our camera for the vis spectrum and the output cone catch images look fine (including contrast), I’m pretty sure the issue is in our spec measurements of the pastels (5 measurements per pastel averaged together).
What I can’t figure out is why we get such high R^2 values with what at this point I’m willing to assume are low quality spec measurements. I can ask my collaborators to go and re-measure the pastels with their spec again, but without specific instructions on what’s going wrong, I don’t know if that will help. Any advice (or even an example pastel spec file) would be really useful, but I understand if this issue is just too niche! Also happy to provide more details.
I am a student from China and I want to tell you that this is not a niche problem because I have a similar situation where my R^2 value is very high but the converted spectral image produces an incredible gray, I didn’t even scale my spectrum, and used the actual pastel value.
But I think the problem will help optimize imageJ and make it easier for us to learn full-spectrum photography. In a sense, I think this is a good thing, Although I don’t have any idea about what to do next. Let’s look forward to Jolyon and Cedric.
Update: we were able to get it to work by contacting some colleagues with a spectroradiometer and shipping them our cheap pastels to measure. As relevant for anyone else, even with the good calibration, I have to adjust the range on the cone-catch models to a 0-100 range. ImageJ picks some weird defaults that make it look really dark or totally blown out otherwise. Phew!