how to find the change in curve

2 views (last 30 days)
i have plotted a curve on my image. The curve is shown in red. I want to find the jump in my curve with some good algroithm. The area in the curve where i want to detect jump is shown in blue. I have tried to find difference between two point to detect jump but that always does not return me the points in the curve i want(show in blue).
  2 Comments
Cedric
Cedric on 25 Sep 2017
But you have the red curve as e.g. a row vector already? If so, could you attach it?
prashant singh
prashant singh on 25 Sep 2017
Attaching row vector for the curve.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 25 Sep 2017
Have you tried findchangepts()?

More Answers (1)

Star Strider
Star Strider on 25 Sep 2017
Try this:
D = load('ridx.mat');
ridx = D.ridx;
ridx = max(ridx)-ridx;
x = 1:length(ridx);
dt_ridx = detrend(ridx);
mask = dt_ridx > 27;
figure(1)
plot(x, ridx)
hold on
plot(x(mask), ridx(mask), '-r', 'LineWidth',1.2)
hold off
grid
Here mask is a logical vector that identifies the ‘jump’ region.

Community Treasure Hunt

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

Start Hunting!