How to subtract false color gradient ?

Hi! I am trying to subtract a False color gradient from my image. I tried using the "detrend" function to subtract the polynomial trend, but it seems like I might be subtracting too much. I get some weird lines across my image.
This is the image before the gradient correction:
and this is how it looks after:
And this is my code:
% Calculate strain
strainNorm = (dspacingNorm - dspacingNominal) / dspacingNominal;
% Gradient Correction
D = detrend(strainNorm,1,'omitmissing');
figure; imagesc(xbins,ybins,D * 100);
title('Elastic lattice strain (%)'); colorbar; axis square; axis equal; % axis([0 xbins(end) 0 ybins(end)])
colormap jet; caxis([strainMin strainMax])
set(gca,'xtick',[]); set(gca,'xticklabel',[]); set(gca,'ytick',[]); set(gca,'yticklabel',[])
Thank you!

Answers (1)

Matt J
Matt J on 3 Jul 2023
Edited: Matt J on 3 Jul 2023
detrend() operates column by column. I suspect you can avoid the lines by subtracting a plane fit to the whole surface instead, e.g., using planarFit() from this FEX download,

2 Comments

Maybe I am not applying it right, but planarFit() is not working for my code
Maybe I am not applying it right
I would have to assume that.

Sign in to comment.

Categories

Find more on Read, Write, and Modify Image in Help Center and File Exchange

Asked:

on 3 Jul 2023

Commented:

on 4 Jul 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!