how to find the change in curve

2 次查看(过去 30 天)
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 个评论
Cedric
Cedric 2017-9-25
But you have the red curve as e.g. a row vector already? If so, could you attach it?
prashant singh
prashant singh 2017-9-25
Attaching row vector for the curve.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2017-9-25
Have you tried findchangepts()?

更多回答(1 个)

Star Strider
Star Strider 2017-9-25
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!

Translated by