How to judge a point whether inside a closed contour or not?

6 vues (au cours des 30 derniers jours)
John W. Z
John W. Z le 21 Mar 2016
Commenté : John W. Z le 22 Mar 2016
Assume a circle contour image matrix
c= [ 0 0 0 0 1 0 0 0 0
0 0 0 1 0 1 0 0 0
0 0 1 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0
0 0 0 1 0 1 0 0 0
0 0 0 0 1 0 0 0 0 ]
and a point p=[4 3], apparently inside this circle. But, how to make such judgement in matlab.

Réponse acceptée

Walter Roberson
Walter Roberson le 21 Mar 2016
http://www.mathworks.com/help/images/ref/imfill.html imfill ('holes'). If the point gets assigned a non-zero value then it is inside a closed contour.
  2 commentaires
Image Analyst
Image Analyst le 22 Mar 2016
Clever. If you want to know if it's on the perimeter or inside (not on perimeter) then check c first
if c(4,3)
% On perimeter.
else
filledc = imfill(c, 'holes');
if filledc(4,3)
% Inside, not on perimeter
else
% Not inside any closed contour at all
end
end
If you don't care whether it's on the perimeter or inside, just do
filledc = imfill(c, 'holes');
if filledc(4,3)
% Inside, or on perimeter
else
% Not inside any closed contour at all
end
John W. Z
John W. Z le 22 Mar 2016
Cheers~

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Contour Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by