Exemplo n.º 1
0
        public PredictionBreakDownDisplay(PicesDataBase _dbConn,
                                          PicesDataBaseImage _image,
                                          PicesRaster _raster,
                                          TrainingModel2 _trainingModel,
                                          PicesInstrumentData _instrumentData, /*!<  Instrument data that goes with image, if null will read from database. */
                                          PicesRunLog _runLog
                                          )
        {
            if (_runLog == null)
            {
                runLog = new PicesRunLog();
            }
            else
            {
                runLog = _runLog;
            }

            if (_image == null)
            {
                return;
            }

            fileName       = _image.ImageFileName;
            instrumentData = _instrumentData;
            trainingModel  = _trainingModel;

            PicesRaster raster = _raster;

            if (_dbConn != null)
            {
                if (raster == null)
                {
                    raster = _dbConn.ImageFullSizeFind(fileName);
                }

                if (instrumentData == null)
                {
                    instrumentData = _dbConn.InstrumentDataGetByScanLine(_image.SipperFileName, _image.TopLeftRow);
                }

                dbFeatureVector = _dbConn.FeatureDataRecLoad(fileName);
            }

            if (raster == null)
            {
                return;
            }

            //raster = raster.ConnectedComponent ();

            featureCalcImages = new PicesRasterList();
            featureVector     = new PicesFeatureVector(raster, fileName, featureCalcImages, runLog);
            if (instrumentData != null)
            {
                featureVector.AddInstrumentData(instrumentData);
            }

            InitializeComponent();
        }
Exemplo n.º 2
0
        } /* LoadImageGrid */

        private void  UpdateDetailProbabilityDisplay(String fileName)
        {
            if (fileName == null)
            {
                return;
            }

            curSelImageFileName = fileName;

            String fullFileName = null;

            if ((fileName.Length > 1) && (fileName[1] == ':'))
            {
                fullFileName = fileName;
            }
            else
            {
                fullFileName = OSservices.AddSlash(rootDir) + fileName;
            }

            if (!File.Exists(fullFileName))
            {
                String fn = OSservices.GetRootName(fileName) + ".bmp";
                fullFileName = OSservices.LookForFile(fn, rootDir);
            }

            Prediction prediction = GetPrediction(fileName);

            // We need to call 'PredictProbabilities'  twice.  Once to get the intermediate images and the
            // second time to perform prediction using the FeatureVector that was used in the original
            // prediction.  It has to be done this way because the version of 'PredictProbabilities' that
            // derives the FeatureVector from an image does not always have access of instrumentation data.

            PicesRasterList     featureCalcImages = new PicesRasterList();
            PicesPredictionList guesses2          = prediction.trainModel.PredictProbabilities(fullFileName, featureCalcImages);

            // Perform Prediction using original FeatureVector.
            PicesPredictionList guesses = prediction.trainModel.PredictProbabilities(prediction.fv);

            ImageFileName.Text = fileName;

            if (guesses == null)
            {
                return;
            }

            ClassificationProbabilities.Rows.Clear();

            foreach (PicesPrediction p in guesses)
            {
                Object[] data = new Object[3];

                data[0] = p.ClassName;
                data[1] = p.Probability;
                data[2] = p.Votes;
                ClassificationProbabilities.Rows.Add(data);
            }


            FeatureCalcImages.Rows.Clear();
            if ((featureCalcImages == null) || (featureCalcImages.Count < 1))
            {
                return;
            }

            for (int x = 0; x < featureCalcImages.Count; x++)
            {
                Object[] data = new Object[2];

                data[0] = featureCalcImages[x].BuildBitmap();
                data[1] = featureCalcImages[x].FileName;
                FeatureCalcImages.Rows.Add(data);
            }
        } /* UpdateDetailProbabilityDisplay */