I want to print this motif on a grey hoodie using DTG, how would I compute the color values for the white underprint to make the colors on grey fabric approximate the colors in the image? My intuition is, after converting to CMYK (assuming no pixel has positive values in all four channels), I subtract the K value of the background grey from the K value of each pixels, the negative K values give me exactly the intensity of the white underprint needed to represent the color. Is that somewhat correct?

[EDIT] My back of an envelope calculation went like following. Assume for simplicity that every layer tranlucent print of color S ∈ {C, M, Y, K} lets light of color A ∈ {R, G, B} pass at rate S(A). Assume further that the fabric reflects light of color A at rate F(A), and a layer of white print on the fabric with opacity w reflects light of color A at rate w + (1 – w) F(A). So a standard CMYK conversion of the RGB image with corresponding values r, g, b would tell us what values c, m, y, k approximate a ~ (c C(A))² (m M(A))² (y Y(A))² (k K(A))² for (a, A) ∈ {(r, R), (g, G), (b, B)}. We want to find values c’, m’, y’, k’, w to approximate a ~ (c’ C(A))² (m’ M(A))² (y’ Y(A))² (k’ K(A))² (w + (1 – w) F(A)) for (a, A) ∈ {(r, R), (g, G), (b, B)}. To have the grey being transparent, we must further assume that approximating a := F(A) gives all zeros.