DJI Mavic, Air and Mini Drones
Friendly, Helpful & Knowledgeable Community
Join Us Now

Color cast correction on DJI FC7303 - No option but Adobe?

pl4sma2389

New Member
Joined
Dec 19, 2021
Messages
2
Reactions
0
Age
21
Location
Ohio, USA
Hello,

I've got a DJI Mini 2, and I've been using it for hobbyist photogrammetry, mapping, and other things.

If you know anything about drone photogrammetry, you'll know that it's very sensitive to lighting conditions-- if it's a patchy-clouded and windy day, you're going to have problems due to the changing brightness and contrast of objects from photo to photo. That's going to confuse the heck out of the photogrammetry engine-- and even if it doesn't, the textures will look patchy and vary in brightness.

For the previous photogrammetry projects I've done, I've just used the JPGs that the onboard image processing generates-- but I can tell that they're not the best for photogrammetry. I know that I should be using the DNGs and processing them into PNGs.

But here's the issue:

This is an example image from a previous project. I was shooting in JPG+DNG mode, and this first image is the JPG as seen in Windows Photos:
1658166775486.png
Looks perfectly normal to me, except it's in a form where I can't control the processing of the photo in the way that I would like.

Next, here's a screenshot of the DNG version of that photo in Darktable:
1658166875832.png
This is exactly how it comes in by default, I haven't changed any settings. It looks terrible, but most of that can be corrected-- it is a DNG after all, you're expected to do post processing manually. However, there's one issue here that Darktable (and RawTherapee, I tried it as well) isn't correcting for-- sensor color cast. If you look closely at the color of the image in Darktable, you can see that the center of the image has a pink cast, and the outside of the image has a green cast. There's also another separate issue, and that's lens distortion-- but that's not an issue for me, as my chosen photogrammetry engine can sense and correct that automatically. But the color cast? It's going to get hung up on that, and even if it doesn't, the generated textures will have large pink spots all over them.

Now, let's look at Adobe Lightroom (Classic):
1658167231960.png
Again, this is exactly how it comes in by default, no processing applied-- but clearly, as indicated by the "Built-in Lens Profile applied" message on the right, Lightroom is using some sort of lens profile from either the image itself or Adobe's servers to correct both the lens distortion and, as it appears, the color cast as well!

Why can't Darktable and RawTherapee do this color cast correction?

Is there some sort of lens profile with color cast correction I can download that works with Darktable and/or RawTherapee?

I know this color cast on the DJI FC7303 sensor is a known issue, but DJI have "fixed" it by either embedding a correction profile in the images that only Lightroom can use, or giving Adobe a correction profile that only Lightroom can access.

WTH???

... or am I missing something?
 
Last edited by a moderator:
Hello,

I've got a DJI Mini 2, and I've been using it for hobbyist photogrammetry, mapping, and other things.

If you know anything about drone photogrammetry, you'll know that it's very sensitive to lighting conditions-- if it's a patchy-clouded and windy day, you're going to have problems due to the changing brightness and contrast of objects from photo to photo. That's going to confuse the heck out of the photogrammetry engine-- and even if it doesn't, the textures will look patchy and vary in brightness.

For the previous photogrammetry projects I've done, I've just used the JPGs that the onboard image processing generates-- but I can tell that they're not the best for photogrammetry. I know that I should be using the DNGs and processing them into PNGs.

But here's the issue:

This is an example image from a previous project. I was shooting in JPG+DNG mode, and this first image is the JPG as seen in Windows Photos:
View attachment 151983
Looks perfectly normal to me, except it's in a form where I can't control the processing of the photo in the way that I would like.

Next, here's a screenshot of the DNG version of that photo in Darktable:
View attachment 151984
This is exactly how it comes in by default, I haven't changed any settings. It looks terrible, but most of that can be corrected-- it is a DNG after all, you're expected to do post processing manually. However, there's one issue here that Darktable (and RawTherapee, I tried it as well) isn't correcting for-- sensor color cast. If you look closely at the color of the image in Darktable, you can see that the center of the image has a pink cast, and the outside of the image has a green cast. There's also another separate issue, and that's lens distortion-- but that's not an issue for me, as my chosen photogrammetry engine can sense and correct that automatically. But the color cast? It's going to get hung up on that, and even if it doesn't, the generated textures will have large pink spots all over them.

Now, let's look at Adobe Lightroom (Classic):
View attachment 151985
Again, this is exactly how it comes in by default, no processing applied-- but clearly, as indicated by the "Built-in Lens Profile applied" message on the right, Lightroom is using some sort of lens profile from either the image itself or Adobe's servers to correct both the lens distortion and, as it appears, the color cast as well!

Why can't Darktable and RawTherapee do this color cast correction?

Is there some sort of lens profile with color cast correction I can download that works with Darktable and/or RawTherapee?

I know this color cast on the DJI FC7303 sensor is a known issue, but DJI have "fixed" it by either embedding a correction profile in the images that only Lightroom can use, or giving Adobe a correction profile that only Lightroom can access.

WTH???

Big "screw you" to FOSS, I guess... or am I missing something?
The profile is embedded in the DNG.

Adobe’s entire image processing pipeline revolves around the DNG format and can use the embedded DNG profiles to the fullest extent. Other raw processing software may work differently and be able to make use of some of the DNG profile but not all. Other raw processors may also just process raws differently.

If it bothers you the best way to take care of this is to make your own profiles using something like an xrite color checker. Make sure that whichever system you get works with your raw processor of choice.
 
using something like an xrite color checker
I don't think that would apply here, as it's a non-uniform color cast differing across the entire image. I'd need to take a photo of an evenly gray wall in perfect lighting conditions, and then process each image through applying the inverse of that error, or something like that, and then I'm not even sure if it might differ across exposure times...

I think RawTherapee actually has a system for this (Flat-Field - RawPedia), but you have to do it with a special piece of glass or whatever, and even if I did it myself, wouldn't the people who made the calibration data (probably DJI) have better and more consistent methods and equipment?
 
I don't think that would apply here, as it's a non-uniform color cast differing across the entire image. I'd need to take a photo of an evenly gray wall in perfect lighting conditions, and then process each image through applying the inverse of that error, or something like that, and then I'm not even sure if it might differ across exposure times...

I think RawTherapee actually has a system for this (Flat-Field - RawPedia), but you have to do it with a special piece of glass or whatever, and even if I did it myself, wouldn't the people who made the calibration data (probably DJI) have better and more consistent methods and equipment?
You are right a color calibration won’t fix that.

Besides the obvious, just use Adobe, you could do more research into getting these various raw processors to accept the dng profile. There’s probably a way to do it but you might have to go digging
 
I was able to remove the central red blob using a flat field image in RawTherapee (v5.9, 5.8 doesn't seem to work quite right).

In my case I took a picture of a 18% grey card in full sun to obtain the flat field rather than messing around with white plastic.

It does introduce a slight red colour cast over the whole picture as I think the flat-field process tries to be neutral - even though in this case that isn't correct - but the cast is easily removed using a later colour adjustment.

There may be more accurate ways to do this but it worked for me.


I also have a colour checker passport which I also wondered about using in order to get a full camera profile, but I'm not quite sure how to go about it. I'd need to apply the flat field before calibrating, but the calibration software works on the raw uncorrected DNG. Is it possible to write out a corrected DNG somehow?


Anyway, attached is an image looking down on some thin mist (I launched as the fog was clearing). The first was processed without the flat field, the second with.

DJI_0005_v1.jpgDJI_0005_FLAT_v1.jpg
 
Last edited:
  • Like
Reactions: SethB
If you want to try it yourself, the Flat Field DNG is here:

This was purely experimental, so I expect it is possible to do better - eg I should probably have done this in an empty car park well away from stray reflections.

The exact pattern may also vary between individual cameras so it might not work perfectly for everyone.
 
Lycus Tech Mavic Air 3 Case

DJI Drone Deals

Forum statistics

Threads
134,438
Messages
1,594,777
Members
162,975
Latest member
JNard1