private void StartRecognition(String filename)
        {
            rangeData = new RangeImage();
            String extension = filename.Substring(filename.LastIndexOf(".")+1).ToLower();

            switch (extension)
            {
                case "rangeimage":
                    rangeData = RangeImage.Read(filename);
                    width = rangeData.Width;
                    height = rangeData.Height;
                    button2.Enabled = true;
                break;

                case "scan":
                    FileStream f = File.Open(filename, FileMode.Open);
                    BinaryReader br = new BinaryReader(f);
                    width = br.ReadInt32();
                    height = br.ReadInt32();
                    rangeData.setWidth(width);
                    rangeData.setHeight(height);

                    if (rangeData.initializeRangeValues(width, height))
                    {

                        for (int i = 0; i < height * width; i++)
                        {
                            try
                            {
                                rangeData.addValue(i, br.ReadSingle());
                            }
                            catch (Exception E) { }
                        }
                        //System.Windows.Forms.MessageBox.Show("W/H = " + width+"/"+height);
                        filename = filename.Replace(".scan", ".rangeimage");
                        rangeData.Write(filename);

                        /*if (value > max)
                                max = value;
                            if (value < min || min == 0)
                                min = value;

                            int val = (int)Math.Min(255, Math.Abs((value / 75f) * 255f));
                            SolidBrush sb = new SolidBrush(Color.FromArgb(255, val, val, val));
                            g.FillRectangle(sb, i/width, i%width, 1, 1);
                             */
                        //System.Windows.Forms.MessageBox.Show("avg" + avg/(height*width));
                        //System.Windows.Forms.MessageBox.Show("min" + min);
                        //System.Windows.Forms.MessageBox.Show("max" + max);
                        f.Close();
                    }
                    button2.Enabled = true;
                break;

                default:
                    System.Windows.Forms.MessageBox.Show("The format of the data is not recognized");
                    return;
                break;
            }

            StartRecognition(rangeData);

            /*
            TextWriter tw = new StreamWriter("c:\\GROUP.txt");

            for(int i=0;i<width*height;i++)
            {
                tw.WriteLine(i/width);
                tw.WriteLine(i % width);
                tw.WriteLine(rangeData.Get(i));
            }
            */
        }