The method interpolates the spectral data instead of measuring it. Thus it is a mock-hyperspectral data conversion from RGB to a plausible hypercube. Plausible means a linear solution with internal consistency.
Hi. I want to try this method and have few roadblocks. I didn't understand the concept of linearizing of RGB matrix. Also where can I get the values of M ? Is it something I construct myself or available to use?
Hey Harsha, So you have to fit a relationship between the Y/Y0 (Y is the tristimulus value of the neutral samples and Y0 is the tristimulus values of the light source. ) of the neutral samples of your color chart and their corresponding digit count for each channel separately. This is usually a polynomial equation. Lets say this is for red channel: Y/Y0 = b2 + b1(R/Rmax) + b0(R/Rmax)^2. Now you have to put all the RGB values of other patches on you color chart through this equation, replacing them with R/Rmax, which result in their values being linearized. Matrix M is obtained through R ×pinv( RGBlin), where the Matrix containing the spectral reflectance of the color chart is being multiplied by the pseudo-inverse of the matrix containing the linearized RGB camera response! I hope this answers your question. If not, please email me and I could share with you some papers.
I think it's DOI 10.1002/col.22231 A Wiley research article called "A strategy toward spectral and colorimetric color reproduction using ordinary digital cameras" 🤯
Hi, I am keen to have a go at this method myself, however, I have a question about the matrix multiplication. In the video you state M = R * pinv(RGBlin) ; this is a multiplication of 24x31 and 3x24 matrix (not possible!). Do you mean M = pinv(RGBlin) * R ? Resulting in M being a 3x31 matrix to convert from 3 to 31 bands? Still a really good video however! :) Thanks
Yes, I might have made a mistake. You just have to make the size right so the size of matrix M becomes 3 by 31, as you said! Thank you so much for pointing that out!
@@SwithinFeely All methods are indeed… you have to be cautious with choosing a good training data. The training data should be a good representative of the testing data. That way, the amount of loss goes down.
The method interpolates the spectral data instead of measuring it. Thus it is a mock-hyperspectral data conversion from RGB to a plausible hypercube.
Plausible means a linear solution with internal consistency.
You are simply incredible Morteza.
Very informative!!
Hi. I want to try this method and have few roadblocks. I didn't understand the concept of linearizing of RGB matrix. Also where can I get the values of M ? Is it something I construct myself or available to use?
Hey Harsha,
So you have to fit a relationship between the Y/Y0 (Y is the tristimulus value of the neutral samples and Y0 is the tristimulus values of the light source. ) of the neutral samples of your color chart and their corresponding digit count for each channel separately. This is usually a polynomial equation. Lets say this is for red channel: Y/Y0 = b2 + b1(R/Rmax) + b0(R/Rmax)^2. Now you have to put all the RGB values of other patches on you color chart through this equation, replacing them with R/Rmax, which result in their values being linearized. Matrix M is obtained through R ×pinv( RGBlin), where the Matrix containing the spectral reflectance of the color chart is being multiplied by the pseudo-inverse of the matrix containing the linearized RGB camera response! I hope this answers your question. If not, please email me and I could share with you some papers.
I think it's DOI 10.1002/col.22231
A Wiley research article called "A strategy toward spectral and colorimetric color reproduction using ordinary digital cameras" 🤯
@@007hansen That is actually my own paper! Thanks for looking it up :)
Hi, I am keen to have a go at this method myself, however, I have a question about the matrix multiplication. In the video you state M = R * pinv(RGBlin) ; this is a multiplication of 24x31 and 3x24 matrix (not possible!). Do you mean M = pinv(RGBlin) * R ? Resulting in M being a 3x31 matrix to convert from 3 to 31 bands?
Still a really good video however! :) Thanks
Yes, I might have made a mistake. You just have to make the size right so the size of matrix M becomes 3 by 31, as you said! Thank you so much for pointing that out!
thanks for nice explanation but it really upsets me!
How can we turn an ordinary digital camera into a hyperspectral camera? Give some other title.
Thank you for the comment!! What should the title be you think?
surely this is still lossy?
@@SwithinFeely All methods are indeed… you have to be cautious with choosing a good training data. The training data should be a good representative of the testing data. That way, the amount of loss goes down.