コード例 #1
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 */
コード例 #2
0
ファイル: ImageEditor.cs プロジェクト: PalakDave/Pices
        } /* PerformAllOperations */

        private void  MakePredictions()
        {
            pred1ClassName.Text = "";
            pred2ClassName.Text = "";

            BlobDetector bd    = new BlobDetector(raster, 20);
            BlobList     blobs = bd.ExtractBlobs();

            if ((blobs == null) || (blobs.Count < 1))
            {
                return;
            }

            Blob largestBlob = blobs.LocateLargestBlob();

            if (largestBlob == null)
            {
                return;
            }

            byte[][] largestRaster = bd.ExtractedBlobImage(largestBlob);

            PicesRunLog runLog      = new PicesRunLog();
            PicesRaster picesRaster = new PicesRaster(largestRaster);

            //PicesPredictionList  trainLibrary1Predictions = null;
            //PicesPredictionList  trainLibrary2Predictions = null;

            //ActiveTrainingLibraries.MakePredictions (picesRaster,
            //                                         instrumentData,
            //                                         imageFileName,
            //                                         ref trainLibrary1Predictions,
            //                                         ref trainLibrary2Predictions,
            //                                         runLog
            //                                        );

            picesRaster.FileName = imageFileName;

            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(picesRaster,
                                                    ref model1Prediction1,
                                                    ref model1Prediction2,
                                                    ref model2Prediction1,
                                                    ref model2Prediction2,
                                                    runLog
                                                    );

            if (model1Prediction1 != null)
            {
                TrainLib1Name.Text  = ActiveTrainingLibraries.Model1Name;
                pred1Prob.Text      = model1Prediction1.Probability.ToString("p");
                pred1ClassName.Text = model1Prediction1.ClassName;
                this.Text           = model1Prediction1.ClassName;

                if (model1Prediction2 != null)
                {
                    pred2Prob.Text      = model1Prediction2.Probability.ToString("p");
                    pred2ClassName.Text = model1Prediction2.ClassName;
                }
            }

            if (model2Prediction1 != null)
            {
                TrainLib2Name.Text      = ActiveTrainingLibraries.Model2Name;
                lib2Pred1Prob.Text      = model2Prediction1.Probability.ToString("p");
                lib2Pred1ClassName.Text = model2Prediction1.ClassName;
                if (model2Prediction2 != null)
                {
                    lib2Pred2Prob.Text      = model2Prediction2.Probability.ToString("p");
                    lib2Pred2ClassName.Text = model2Prediction2.ClassName;
                }
            }

            picesRaster = null;

            blobs.Dispose();
            largestBlob.Dispose();
            bd.Dispose();
            bd = null;
        } /* MakePredictions */