コード例 #1
0
ファイル: ImageViewer.cs プロジェクト: PalakDave/Pices
        } /* LoadPlanktonImage */

        private void  AddImageToTraningLibraries()
        {
            if (!ActiveTrainingLibraries.ModelsAreAvailable())
            {
                MessageBox.Show("There are no selected Training Models to add Image to.");
                return;
            }

            if (image.ValidatedClass == null)
            {
                MessageBox.Show("No Validated Class Selected.");
                return;
            }

            TrainingModel2 tm1 = ActiveTrainingLibraries.Model1();

            if (tm1 == null)
            {
                tm1 = ActiveTrainingLibraries.Model2();
            }

            if (tm1 == null)
            {
                MessageBox.Show("No active training library specified.");
                return;
            }

            if (!tm1.IncludesClass(image.ValidatedClass))
            {
                MessageBox.Show("Training Model[" + tm1.ModelName + "]  does not include a definition for class[" + image.ValidatedClass.Name + "].", "ImageViewer.AddImageToTraningLibraries");
            }
            else
            {
                try
                {
                    tm1.AddImageToTrainingLibray(image.ImageFileName, raster, image.ValidatedClass, true);
                }
                catch (Exception e)
                {
                    MessageBox.Show("Error adding image to TrainingModel2[" + tm1.ModelName + "]" + "\n\n" + e.ToString(), "ImageViewer.AddImageToTraningLibraries");
                }
            }
        } /* AddImageToTraningLibraries */
コード例 #2
0
ファイル: ImageViewer.cs プロジェクト: PalakDave/Pices
        } /* UpdatedataFields*/

        private void MakePredictions()
        {
            if (!ActiveTrainingLibraries.ModelsAreAvailable())
            {
                // Since there are NO training models loaded;  there is no point doing the work for a prediction.
                return;
            }

            featureVector = dbConn.FeatureDataRecLoad(image);
            if (featureVector == null)
            {
                featureVector = new PicesFeatureVector(raster, image.ImageFileName, null, runLog);
                // Since we had to compute the FeatureDatya from the raster we now need to
                // get the instrument data that matches it.
                if (instrumentData != null)
                {
                    featureVector.AddInstrumentData(instrumentData);
                }

                dbConn.FeatureDataInsertRow(image.SipperFileName, featureVector);
            }

            float esd        = 0.0f;
            float eBv        = 0.0f;
            float filledArea = image.PixelCount;
            float cropWidth  = 3800.0f; // (3900.0f - 200.0f);
            float flowRate2  = 0.5f;

            if (featureVector != null)
            {
                filledArea = featureVector.FilledArea;
            }

            if (sipperFile != null)
            {
                scanRate = sipperFile.ScanRate;
            }

            esd = (float)(2.0 * Math.Sqrt(filledArea * (0.096 / cropWidth) * 1000.0 * (flowRate1 / sipperFile.ScanRate) * 1000.0 / 3.1415926));
            eBv = (float)((4.0 / 3.0) * Math.PI * Math.Pow(Math.Sqrt(filledArea * (chamberWidth / cropWidth) * 1000 * (flowRate1 / scanRate) * 1000.0 / Math.PI), 3));

            PicesPrediction model1Prediction1 = new PicesPrediction(null, 0, 0.0f);
            PicesPrediction model1Prediction2 = new PicesPrediction(null, 0, 0.0f);
            PicesPrediction model2Prediction1 = new PicesPrediction(null, 0, 0.0f);
            PicesPrediction model2Prediction2 = new PicesPrediction(null, 0, 0.0f);

            ActiveTrainingLibraries.MakePredictions(featureVector,
                                                    ref model1Prediction1,
                                                    ref model1Prediction2,
                                                    ref model2Prediction1,
                                                    ref model2Prediction2,
                                                    runLog
                                                    );

            if (model1Prediction1 != null)
            {
                Lib1Pred1Class.Text = model1Prediction1.ClassName;
                Lib1Pred1Prob.Text  = model1Prediction1.Probability.ToString("##0.00%");
                Lib1Pred1Votes.Text = model1Prediction1.Votes.ToString("#,##0");
            }

            if (model1Prediction2 != null)
            {
                Lib1Pred2Class.Text = model1Prediction2.ClassName;
                Lib1Pred2Prob.Text  = model1Prediction2.Probability.ToString("##0.00%");
                Lib1Pred2Votes.Text = model1Prediction2.Votes.ToString("#,##0");
            }

            if (model2Prediction1 != null)
            {
                Lib2Pred1Class.Text = model2Prediction1.ClassName;
                Lib2Pred1Prob.Text  = model2Prediction1.Probability.ToString("##0.00%");
                Lib2Pred1Votes.Text = model2Prediction1.Votes.ToString("#,##0");
            }

            if (model1Prediction2 != null)
            {
                Lib2Pred2Class.Text = model2Prediction2.ClassName;
                Lib2Pred2Prob.Text  = model2Prediction2.Probability.ToString("##0.00%");
                Lib2Pred2Votes.Text = model2Prediction2.Votes.ToString("#,##0");
            }

            if (featureVector != null)
            {
                AreaMMSquare.Text = featureVector.AreaMMSquare.ToString("#,##0.000");
            }

            ESD.Text = esd.ToString("#,##0.00");
            EBv.Text = eBv.ToString("##0.0000");

            return;
        } /* MakePredictions */