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); }
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); }
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); }
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); }