コード例 #1
0
        public static List <String> Searching(Dictionary <String, List <String> > dicVisualWords, List <Dot_RGB> listDot, Size input)
        {
            if (listDot == null || listDot.Count == 0)
            {
                return(null);
            }

            float cellWidth  = input.Width / (float)ConfigPCT.PCT_NUMBER_OF_HORIZONTAL_REGION;
            float cellHeight = input.Height / (float)ConfigPCT.PCT_NUMBER_OF_VERTICAL_REGION;

            Dot_RGB dot    = listDot[0];
            int     xIndex = (int)(listDot[0].location.X / cellWidth);
            int     yIndex = (int)(listDot[0].location.Y / cellHeight);

            List <Color> colorVisualWord = ColorHelper.GenerateColorVisualWord_Rgb();
            Color        color           = colorVisualWord[DistanceHelper.ColorKNN_RGB(dot.color, colorVisualWord)];
            String       key             = color.R + "_" + color.G + "_" + color.B + "_" + xIndex + "_" + yIndex;

            if (dicVisualWords.ContainsKey(key))
            {
                return(dicVisualWords[key]);
            }

            return(null);
        }
コード例 #2
0
        private void DrawDotWithBorder(Graphics g, Dot_RGB dot)
        {
            SolidBrush brush = new SolidBrush(dot.color);

            g.FillEllipse(brush, dot.location.X - dot.radius, dot.location.Y - dot.radius, dot.radius * 2, dot.radius * 2);
            Pen pen = new Pen(ColorHelper.GetBlackOrWhiteColorContrast(dot.color));

            g.DrawEllipse(pen, dot.location.X - dot.radius, dot.location.Y - dot.radius, dot.radius * 2, dot.radius * 2);
        }
コード例 #3
0
        public static PCTFeature_RGB ReadingFeatureFromFile_RGB(String filePath)
        {
            if (!File.Exists(filePath))
            {
                return(null);
            }

            String path = Path.GetFileNameWithoutExtension(filePath);

            String content = FileManager.GetInstance().ReadContentFile(filePath);

            String[] rows             = content.Split('\n');
            String[] header           = rows[0].Split('\t');
            int      numberColorPoint = int.Parse(header[0]);
            int      widthFrame       = int.Parse(header[1]);
            int      heightFrame      = int.Parse(header[2]);

            PCTFeature_RGB pct = new PCTFeature_RGB();

            pct.FrameName        = path;
            pct.NumberColorPoint = numberColorPoint;
            pct.Width            = widthFrame;
            pct.Height           = heightFrame;

            for (int index = 2; index < pct.NumberColorPoint + 2; index++)
            {
                String[] str    = rows[index].Split('\t');
                int      x      = int.Parse(str[0].Trim());
                int      y      = int.Parse(str[1].Trim());
                int      radius = int.Parse(str[2].Trim());

                int b = int.Parse(str[3].Trim());
                int g = int.Parse(str[4].Trim());
                int r = int.Parse(str[5].Trim());

                Dot_RGB dot = new Dot_RGB(new Point(x, y), radius, Color.FromArgb(255, r, g, b));
                pct.ListColorPoint.Add(dot);
            }

            return(pct);
        }
コード例 #4
0
        private void DrawDot(Graphics g, Dot_RGB dot)
        {
            SolidBrush brush = new SolidBrush(dot.color);

            g.FillEllipse(brush, dot.location.X - dot.radius, dot.location.Y - dot.radius, dot.radius * 2, dot.radius * 2);
        }