MATLAB: Extending the line/curve in image and get the coordinate

curve fittingimage processing

I have an image and I have fitted curve/line through a set of points.
I want to extend the curve/line down in the image and get the coordinates through which the line passes, as show below in blue

Best Answer

Fit a line with polyfit(), then extrapolate with polyval():
% Sort in order of increasing y
[sortedY, sortOrder] = sort(y);
% Sort x the same way:
sortedX = x(sortOrder);
% Fit a line through existing training points.
coefficients = polyfit(sortedY, sortedX, 1); % Note: I swapped x and y intentionally!
% Define y for what we want
fittedY = 1 : rows;
% Get fit and extrapolated values.
fittedX = polyval(coefficients, fittedY);
hold on;
plot(fittedX, fittedY, 'c-', 'LineWidth', 2);