internal List<Tuple<int, int>> FindSingularPoints(List<Tuple<int, int>> singularPointsPI) { List<Tuple<int, int>> result = new List<Tuple<int, int>>(); HoughTransform houghTransform = new HoughTransform(singularPointsPI, orientationField); List<double[,]> blocks = new List<double[,]>(); double backgroundOrientation; foreach (Tuple<int, int> point in singularPointsPI) { if (!IsValidPointPosition(point)) { continue; } blocks = GetBlocks(point); foreach (double[,] block in blocks) { backgroundOrientation = GetBackgroundOrientation(block); houghTransform.Transform(point, backgroundOrientation); } } return houghTransform.FilterThreshold(); }
internal List <Tuple <int, int> > FindSingularPoints(List <Tuple <int, int> > singularPointsPI) { List <Tuple <int, int> > result = new List <Tuple <int, int> >(); HoughTransform houghTransform = new HoughTransform(singularPointsPI, orientationField); List <double[, ]> blocks = new List <double[, ]>(); double backgroundOrientation; foreach (Tuple <int, int> point in singularPointsPI) { if (!IsValidPointPosition(point)) { continue; } blocks = GetBlocks(point); foreach (double[,] block in blocks) { backgroundOrientation = GetBackgroundOrientation(block); houghTransform.Transform(point, backgroundOrientation); } } return(houghTransform.FilterThreshold()); }