MATLAB: How is streamline function is implemented in MATLAB?!

gradient imageimage processingMATLABploting

Hello everyone,
I post a question some times ago, I am still searching about it. I found a function that does exactly what I want! However it is a MATLAB built in function and I need to know how it works?! It draws curved lines in th direction of the gradient! I want to do the same.
I have an image, I want to take it's gradient and draw the same lines for the gradient vectors! Just like the following image.
This produces an amazing result for my problem. How these lines are generated? I need the data points of these lines not only just drawing them!
Anyone has any clue how the lines are derived?! Or how can I do the same?!
Any idea how streamline finds these curved smooth lines?
Thanks a lot.

Best Answer

Well how to generate the lines will take a bit of thought but to get the lines
[x,y] = meshgrid(0:0.1:1,0:0.1:1);
u = x;
v = -y;
figure
quiver(x,y,u,v)
startx = 0.1:0.1:1;
starty = ones(size(startx));
hstream = streamline(x,y,u,v,startx,starty);
Xdata = get(hstream,'Xdata');
Ydata = get(hstream,'Ydata');
hold on
for ind =1:length(Xdata);
plot(Xdata{ind},Ydata{ind},'r--')
end