From: Tamas L. <lit...@gm...> - 2023-06-14 11:39:14
|
Hello, I have used LCMS for image color space transforms for lots of years, but I am relatively new in creating my own profiles. Using C# and .NET, I can do most of the creating process successfully. However, it seems that I cannot move on from some of the easiest steps (I think I understand the process, but the results are not satisfactory). Here, I try to minimize the problem, and use 1D transforms (linearization curve) and Grayscale space (only 1 color). In this case, how can I linearize a black&white grayscale image/printer? Here is what I tried to do: 1. Print an equal step grayscale ramp (in grayscale mode, using 8-bit 0 - 255 values. E.g: for six steps it's 0/51/102/153/204/255). 52 steps seems to be a good starting point (steps are 0 - 5 - 10 - 15 - 20 - etc..) 2. I have an X-Rite i1 / Datacolor Spyder, so I can read the values in LAB format (saved CGATS files). 3. White Point LAB L* is usually around 94, black point LAB L* is usually from 3 - 15, depends the type of media, so i need to slice this range to equal steps to find the linear values (if i want something else, not like a linear line, but a special curve, i need to slice this range according to that curves). 4. Normalize both LAB L* data arrays to a 0.0 - 100.0 range. 5. Find the difference between the measured ones and the linear ones. 6. Used those differences to calculate LAB L* -> Grayscale values. (This is the point where I think I misunderstand something). Normally I added these difference values to the original source Gray -> LAB L* values. I can use the corrected LAB L* values to create normal output profiles, or can use the Grayscale values to create a simple DeviceLink profile. The easiest method is to use the cmsBuildTabulatedToneCurve16 with the resulting values converted to the 0 - 65535 range. (But also got advice to use an 1D LUT table, but the ToneCurves are needs to be enough) Everything seems right and works flawlessly, except the results are not (very) linear and the classic 'bullseye' images are wrong.... >From anyone who tried to do similar linearizations in the past or any hint or help would be very helpful for me. Many thanks, Tamas |