How do I use the basecurve in Darktable to make sure that the final output is linear? That is, if the irradiance E is received at the front lens, I want the pixel values in the final values to be k*E, where k is constant. Does the default curve compensate for any non-linearities, or is the input already assumed to be linear, so the curve should be used to create a certain look?

The purpose of the images are for textures, and I want to have a linear workflow all the way until the final render, where the appropriate curves should be applied.

In other words, a non-tonemapped image is required, such that the image may be used in other programs that expect linear images.

  • 1
    How do you know that the sensor of a commercial camera is linear? – xenoid Jul 23 '19 at 18:45
  • 4
    I'm voting to close this question as off-topic because this is about using camera as a laboratory device, not about photography. – xenoid Jul 23 '19 at 18:46
  • 1
    @xenoid just take it as a given that sensors are linear; you can look at the data sheet for any of them to confirm. And I don't consider this question off-topic, it's similar to any color space question. – Mark Ransom Jul 24 '19 at 16:10
  • This question is absolutely on-topic; just because you don't know about linear imaging doesn't mean this is off topic. – hatsunearu Jul 25 '20 at 0:39

It should be quite easy to measure. Take a series of pictures with different exposure time t, using a constant light source. Then the input to the system will be linear, because the number of photons that will hit the sensor is proportional to E and t. This will give measure points of the imaging system, which can be used to create a calibration profile.

Taking pictures against a white wall in a dark room gave the following result:

Exposure time vs intensity

As you can see, the output from the camera is pretty linear, with the basecurve turned off.

Not the answer you're looking for? Browse other questions tagged or ask your own question.