Пример #1
0
        public String getPath(int times = 0, int labelledPatients = 0)
        {
            CSVRecord            = null;
            informationCSVMerger = null;
            if (times > 10)
            {
                MessageBox.Show("Przekroczono limit losowania bez powtorzenia - zmien dane");
                Environment.FailFast("");
                return(null);
            }
            String path = pathProvider.getPath();
            String final;

            if (informationCSVMerger == null)
            {
                informationCSVMerger = new InformationCSVMerger <CSVRecord>(CSVSaver.CsvPath);
            }
            if (labelledPatients > 0 && informationCSVMerger.getRecords().Count > loadedLabelled)
            {
                final = getLabelledPath();
            }
            else
            {
                if (labelledPatients > 0)
                {
                    MessageBox.Show("Załadowano nowego pacjenta - nie ma kolejnych rekordów danych do załadowania oznaczonych");
                }
                final = analyzePath(path) && dropPolitics?getPath(times + 1, labelledPatients : labelledPatients) : path;
            }

            informationCSVMerger = null;
            return(final);
        }
Пример #2
0
        public Form1()
        {
            InitializeComponent();
            trackBar1.SendToBack();
            Utils.initAutoMapper();
            PropertiesReader.loadValues();
            CSVSaver = new CSVSaver(Directory.GetCurrentDirectory() + PropertiesReader.OUTPUT_CSV_RELATIVE_PATH);
            PathAnalyzer pathAnalyzer = new PathAnalyzer(new PathProvider(), CSVSaver, true);

            pathStorer = new PathStorer(pathAnalyzer);

            currentParameter = 0;
            cSVMerger        = new InformationCSVMerger <PatientRecord>(Directory.GetCurrentDirectory() + PropertiesReader.PATIENT_DATA_RELATIVE_PATH);
            drawer           = new ImageDrawer();
            refreshFeatures();
        }
Пример #3
0
        public bool analyzePath(String path)
        {
            if (informationCSVMerger == null)
            {
                informationCSVMerger = new InformationCSVMerger <CSVRecord>(CSVSaver.CsvPath);
            }
            CSVRecord = null;
            CSVRecord = InformationCSVMerger <CSVRecord> .getRecord(path, informationCSVMerger.getRecords());

            if (CSVRecord == null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Пример #4
0
        private void loadPatientInfo()
        {
            PatientCountValue.Text = "" + pathStorer.currentPath;
            PatientRecord rec = InformationCSVMerger <PatientRecord> .getRecord(pathStorer.paths[pathStorer.currentPath], cSVMerger.getRecords());

            if (rec == null)
            {
                SexValue.Text       = "";
                AgeValue.Text       = "";
                ICDValue.Text       = "";
                DescriptionBox.Text = "";
            }
            else
            {
                SexValue.Text       = rec.sex;
                AgeValue.Text       = rec.age;
                ICDValue.Text       = rec.correct_icd_code;
                DescriptionBox.Text = rec.description1;
            }
            CSVStructure = CSVStructure.getStructure(pathStorer.getCurrentRecord());
            loadImageInfo();
        }
Пример #5
0
        public List <ImagePair> go(CSVSaver CSVSaver, bool zanik)
        {
            int halfW;
            int halfH;

            if (zanik)
            {
                halfW = 80;
                halfH = 80;
            }
            else
            {
                // Połowa wielkości( wysokości i szerokości)
                halfH = 40;
                halfW = 40;
            }

            InformationCSVMerger <CSVRecord> informationCSVMerger = new InformationCSVMerger <CSVRecord>(CSVSaver.CsvPath);
            List <CSVRecord> list = informationCSVMerger.getRecords();
            ImageDrawer      id;

            if (zanik)
            {
                id = getZanikDrawer();
            }
            else
            {
                id = getWyjscieDrawer();
            }

            Image resultImage = new Bitmap(ImageSlider.WIDTH, ImageSlider.HEIGHT, PixelFormat.Format24bppRgb);

            using (Graphics grp = Graphics.FromImage(resultImage))
            {
                grp.FillRectangle(
                    Brushes.Black, 0, 0, resultImage.Width, resultImage.Height);
            }

            List <ImagePair> data = new List <ImagePair>();

            foreach (var item in list)
            {
                ImagePair IP = new ImagePair();
                IP.directory = "/" + item.Patient + "/" + item.Date + "/" + item.Eye + "/mask/";

                BitmapAndPath BAP1 = new BitmapAndPath();
                BAP1.path = IP.directory + item.PierscienImage;

                id.setImage(resultImage);

                Image drawn = id.Draw(CSVStructure.getStructure(item));

                Rectangle cropRect = new Rectangle(item.PierscienX - halfH, item.PierscienY - halfW, halfH * 2, halfW * 2);
                Bitmap    src      = drawn as Bitmap;
                Bitmap    target   = new Bitmap(cropRect.Width, cropRect.Height);

                using (Graphics g = Graphics.FromImage(target))
                {
                    g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height),
                                cropRect,
                                GraphicsUnit.Pixel);
                }

                BAP1.bmp = new Bitmap(target);

                BitmapAndPath BAP2 = new BitmapAndPath();
                BAP2.path = "/" + item.Patient + '/' + item.Date + '/' + item.Eye + "/" + item.PierscienImage;

                Image original = new Bitmap(Image.FromFile(PropertiesReader.PATH_PROVIDER_ADDITIONAL_ARGS + "/" + item.Patient + "/" + item.Date + "/" + item.PierscienImage), new Size(ImageSlider.WIDTH, ImageSlider.HEIGHT));

                Bitmap src2    = original as Bitmap;
                Bitmap target2 = new Bitmap(cropRect.Width, cropRect.Height);

                using (Graphics g = Graphics.FromImage(target2))
                {
                    g.DrawImage(src2, new Rectangle(0, 0, target2.Width, target2.Height),
                                cropRect,
                                GraphicsUnit.Pixel);
                }

                BAP2.bmp = new Bitmap(target2);

                IP.X = BAP1;
                IP.Y = BAP2;

                data.Add(IP);
            }

            return(data);
        }
Пример #6
0
        private List <CSVRecord> readCSV()
        {
            InformationCSVMerger <CSVRecord> informationCSVMerger = new InformationCSVMerger <CSVRecord>(CsvPath);

            return(informationCSVMerger.getRecords());
        }