tag:blogger.com,1999:blog-3278537004721616095.post1199297295697792650..comments2023-06-18T05:39:43.954-07:00Comments on kindofdoon: The Blog of Daniel W. Dichter: How Paints MixDaniel W. Dichterhttp://www.blogger.com/profile/07858499797877507401noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-3278537004721616095.post-84359681269254118922021-05-20T10:05:36.201-07:002021-05-20T10:05:36.201-07:00Okay thanks! I'll have a look at it in more de...Okay thanks! I'll have a look at it in more detail when I have time. Now I am familiarizing with the practical aspect of it using Walowit. Since I am using opacity charts, I may even try the traditionnal method that implies measuring the film's thickness and using the equation that contain log functions. In anycase thanks so much for your advice and feedback, that helped a lot.Adrien Gary LUCCAhttps://www.blogger.com/profile/11308030292901214137noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-63208294781721019262021-05-17T09:29:04.213-07:002021-05-17T09:29:04.213-07:00Glad to hear of your progress!
Centore has develo...Glad to hear of your progress!<br /><br />Centore has developed a few different functions for deriving K and S. I tried several of them, and also had issues getting some of them to work at all. I did not investigate enough to determine if the issues were due to software or my specific dataset. Ultimately I settled on KandSfromMixturesCentore2013.m which may be obsolete from Centore's perspective, but nonetheless is still significantly better than the Walowit method, and practically about as fast. I think Walowit's method is fastest while Centore's are slower but provide better results. Walowit's method might still be useful in some scenarios where speed and simplicity are preferred over maximum accuracy.Daniel W. Dichterhttps://www.blogger.com/profile/07858499797877507401noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-90307342596817418072021-05-17T09:14:39.281-07:002021-05-17T09:14:39.281-07:00Thank you so much Daniel! for the method tip and t...Thank you so much Daniel! for the method tip and the article, both are great. I didn't think everything had to be put together in the same matrix. Now it works really well!!!<br />There's just a thing, I don't know why but Centaure's algorithms is extremely slow to execute on Octave and doesn't work on my version of Matlab (there are many detected errors in the code). Any idea why this would be so slow? I have implemented Walowit in numpy/python and it is extremely fast, however.Adrien Gary LUCCAhttps://www.blogger.com/profile/11308030292901214137noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-68104050008530186192021-05-15T16:28:27.582-07:002021-05-15T16:28:27.582-07:00Hi Adrien - the inputs required for Centore's ...Hi Adrien - the inputs required for Centore's programs, which I run in MATLAB, are the same as described in the Walowit paper I cite. You will see in this paper that K and S for all paints and mixes are computed simultaneously, not individually. This is the standard practice. Your matrices should be large - for example, my concentrations matrix has dimensions of [109 mixes x 7 primaries]. As for your choice of mixes, I suggest you also include black in addition to white, or do something similar to what I've described, to have confidence in the generality and accuracy of your result. As for the wavelength resolution, 3.333 nm is very fine; you can safely coarsen to 5-10 nm without penalty. The overall calculation should not take more than a couple seconds. You can read more about black/white mixing in Kirchner's paper "Instrumental colour mixing to guide oil paint artists", which is very similar to my article. Good luck!Daniel W. Dichterhttps://www.blogger.com/profile/07858499797877507401noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-36520220452107407072021-05-15T02:59:10.428-07:002021-05-15T02:59:10.428-07:00Dear Daniel,
I hope you have some minutes to answ...Dear Daniel,<br /><br />I hope you have some minutes to answer a few basic questions...<br />I have downloaded Centaure's routines and give it a first try. <br /><br />When you are using Centore's algorithms on Octave (or are you using Matlab?), how do you proceed? Do you compute K and S of your entire database at once? Or do you compute K and S seperately for each individual pigment?<br /><br />For evaluation, I have made several mixtures of organic pigments and titanium white. Using a coating bar, a precision scale and a mechanical mixer to have reproductible results, I have made samples on opacity charts.<br />I have measured the samples using an eye-one pro spectrophotometer and formated the data as specified by Centaure in: "Wavelengths", "Reflectances" and "Concentration" matrices.<br /><br />I am wondering, however, if it is better to calculate K and S individually, for each pigment, or if it is better to include all the available data, including mixtures that combine several pigments, into the data that is sent to the function "KandSfromMixtures"?<br /><br />For only one pigment + white, the "Concentrations" matrix is very small, with only two columns. However, if I include the entire data I get a large matrix with as many columns as there are pigments in the database. I am wondering if this is good practice.<br /><br />it seems to me that the computation of the results is extremely slow but maybe I have used a too high resolution of 3.333 nm for my samples, which increases a lot the computation time?<br /><br />Best,<br />Adrien<br /><br /><br /><br /><br /><br />Adrien Gary LUCCAhttps://www.blogger.com/profile/11308030292901214137noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-60735866395832430612021-04-02T07:25:01.108-07:002021-04-02T07:25:01.108-07:00Thanks for the tip! Such a pity all these routines...Thanks for the tip! Such a pity all these routines are written in Matlab and not C or Python! I will definitely try to "translate" this for my own use.Adrien Gary LUCCAhttps://www.blogger.com/profile/11308030292901214137noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-52285970498062054782021-04-01T17:07:15.231-07:002021-04-01T17:07:15.231-07:00Thank you, Adrien! I have not published my code fo...Thank you, Adrien! I have not published my code for this. However, I suggest you check out Paul Centore's fantastic "Kubelka-Munk Routines", which I now use. His methods for deriving K and S supersede WMB and significantly outperform all methods discussed here. For my dataset, the error is roughly cut in half. I've also learned that the reason a standard set of mixes is hard to find is that it's something of an industrial trade secret. A Schmid Chart works well as a simple "open-source" alternative! As you can see from the cross-validation, one can achieve nearly equal accuracy with far fewer mixes.Daniel W. Dichterhttps://www.blogger.com/profile/07858499797877507401noreply@blogger.comtag:blogger.com,1999:blog-3278537004721616095.post-52814322160099493062021-04-01T16:42:11.728-07:002021-04-01T16:42:11.728-07:00This is so far the most useful article I have foun...This is so far the most useful article I have found on Kubelka-Munk for color mixing, thanks! Did you publish anything on Github?Adrien Gary LUCCAhttps://www.blogger.com/profile/11308030292901214137noreply@blogger.com