How to detect the critical points on the boundary..?

2 次查看(过去 30 天)
Hello, I want to detect the critical pints on the object boundary, i am not getting how to code it in the MATLAB, My algorithm is given below let ....x-3,x-2,x-1,x,x+1,x+2,x+3... are the points on the boundary if the perpendicular distance from the x and straight line joining x-1 & x+1, is greater than the threshold then x-1 and x+1 will be our critical points and if it is less than the threshold then we progressively examine the neighbors, like x-2,x-1,x,x+1,x+2,x+3 again if it is greater than the threshold then x-2 and x+2 will be critical points and if it is less then then follow the same process, let our first set of critical points on the boundary are X+5 and X-5. Then for finding out next critical points i have to check the perpendicular distance between x+6 and straight line joining the x+5 and x+7,and again if it is less than the threshold i have to continue the process.
i would like to know how code it with the less number of for loops,i Also like to know how to save the co-ordinates of critical points after finding it. If possible please help i am beginner in MATLAB programming, Thanks in advance
  2 个评论
Image Analyst
Image Analyst 2015-12-5
What perpendicular distance? This is a 1-D problem. There is no y, is there? So how can anything be perpendicular when everything lies along a 1-D number line? Can you provide a diagram of this?
harshal j
harshal j 2015-12-5
Thanks for the comment, this program is not 1-D program,This is 2-D programming each point is having x and y co-ordinates,
for your reference consider the points b-3,b-2,b-1,b,b+1,b+2,b+3. Where b is the point on the boundary with coordinate (x,y. each point on the boundary is 2-D. for your reference i have included the figure of the object.

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2015-12-5
I'd just put that into a for loop - nothing wrong with for loops for tiny amounts of data like this.
  3 个评论
Image Analyst
Image Analyst 2015-12-5
Have a separate loop counter
numCritical = 1;
for k = 1 : length(X)
% Code...
if itsACriticalPoint
% Save x and y values of this point into the criticalPoints array.
criticalPoints(numCritical, 1) = X(k);
criticalPoints(numCritical, 2) = Y(k);
numCritical = numCritical + 1;
end
end
harshal j
harshal j 2015-12-6
Thank u so much for the answer it will solve my problem.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Computer Vision with Simulink 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by