Beispiel #1
0
        private void AutoManualChanged()
        {
            if (_defaultColorPalette == null)
            {
                _defaultColorPalette = loadColorPalette(Application.StartupPath + "\\default.cp");
            }

            if (clusteringMethodSelector.SelectedMethod != Method.KMEANSMANUAL)
            {
                manualClusterSelectControl1.Hide();
                imgWindow.Hide();
                labelColorPalettes.Visible = true;
                cmbColorPalettes.Visible   = true;
            }
            else
            {
                _colorPalette = loadColorPalette(Application.StartupPath + "\\manualClustering.cp");
                labelColorPalettes.Visible = false;
                cmbColorPalettes.Visible   = false;
                manualClusterSelectControl1.Show();
                GeoImageTools gImgTools = new GeoImageTools(_gImgData);
                byte[]        firstBand = gImgTools.getOneBandBytes(0);
                imgWindow.DrawImage(_gImgData, firstBand, _defaultColorPalette);
                imgWindow.Show();
            }
        }
Beispiel #2
0
        protected override void SetValuesFromLoadedBands <T>(T values, Action <T, byte[], int> setAtBand)
        {
            GeoImageTools gImgTools = new GeoImageTools(_gImgData);

            for (int bandInd = 0; bandInd < BandCount; bandInd++)
            {
                int    currentBand = _includedBands[bandInd];
                byte[] loadedBand  = gImgTools.getOneBandBytes(currentBand);
                setAtBand(values, loadedBand, bandInd);
            }
        }
Beispiel #3
0
        public MultiBandOperation(GeoImageData imageData, int[] bands)
        {
            this.imageData  = imageData;
            this.imageTools = new GeoImageTools(imageData);
            this.inputBands = new List <byte[]>();

            foreach (int band in bands)
            {
                this.inputBands.Add(imageTools.getOneBandBytes(band));
            }
        }
            protected override void SetPointsFromLoadedBands(ImagePoint[] points)
            {
                GeoImageTools gImgTools = new GeoImageTools(_gImgData);

                for (int curDim = 0; curDim < PointDim; curDim++)
                {
                    int    bandInd    = _includedBands[curDim];
                    byte[] loadedBand = gImgTools.getOneBandBytes(bandInd);
                    SetPointsAtDim(points, loadedBand, curDim);
                }
            }
        void SaveResult(GeoImageData gimda, byte[] byout, int iband)
        {
            GeoImageTools gt        = new GeoImageTools(gimda);
            string        dirname   = Path.GetDirectoryName(gimda.FileName);
            string        fname     = Path.GetFileNameWithoutExtension(gimda.FileName);
            string        extension = Path.GetExtension(gimda.FileName);
            string        fileName  = dirname + "\\" + fname + tbResultAppendix.Text + extension;

            if (iband == 0)
            {
                gt.saveHeader2Giwer(fileName);
            }
            gt.saveGivenBand2GiwerFormat(dirname + "\\" + fname + tbResultAppendix.Text, byout, iband, "");
            //gt.saveOneBandResultAsGiwerFormat(fileName, byout, "");
        }
Beispiel #6
0
        public void InitImage(byte[] byIn, Int32 imWidth, Int32 imHeight, Int32[] colp) // loads an image
        {
            GeoImageTools gimt = new GeoImageTools();

            bmp = gimt.convertOneBandBytesto8bitBitmap(byIn, imWidth, imHeight, colp);
            //bmp = gimt.convertOneBandBytesto24bitBitmap(byIn, imWidth, imHeight);
            posX      = 0;
            posY      = 0;
            zoomLevel = 1F;
            zl        = 1F;
            if (displayImageSize == "true")
            {
                tslbl.Text = "Image size:(" + bmp.Width + "," + bmp.Height + ")";
            }
            zoomFull();
        }
 public SingleBandOperation(GeoImageData imgData, int band, List <string> par)
 {
     this.imageData  = imgData;
     this.imageTools = new GeoImageTools(imgData);
     this.inputBand  = imageTools.getOneBandBytes(band);
 }
        void RunWorkflow(Project proj)
        {
            //Assembly assem = typeof(WorkflowBuilder).Assembly;
            //Type tt = assem.GetType("Giwer.workflowBuilder.Operations.HighPassFilter");

            //MethodInfo method = tt.GetMethod("Execute", BindingFlags.Public | BindingFlags.Instance);
            //method.Invoke(tt, null);

            //GeoImageData imgData=new GeoImageData();
            //int band = 0;
            //SingleBandOperation op = (SingleBandOperation)Activator.CreateInstance(tt, new object[] { imgData, band });
            //// propertyket beállítani
            //op.Execute();

            if (!checkParameters())
            {
                return;
            }
            if (MessageBox.Show("The process can take a long time (even hours)", "Long last process notice", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
            {
                return;
            }
            this.Cursor = Cursors.WaitCursor;
            progressWorkflow.Maximum = proj.FileNames.Count;
            progressWorkflow.Value   = 0;
            progressWorkflow.Visible = true;

            foreach (string fileItem in proj.FileNames)
            {
                progressWorkflow.PerformStep();
                GeoImageData imgData = new GeoImageData();
                imgData.FileName = fileItem;
                byte[] byin  = new byte[imgData.Nrows * imgData.Ncols];
                byte[] byout = new byte[imgData.Nrows * imgData.Ncols];

                for (int band = 0; band < imgData.Nbands; band++)
                {
                    int k = 0;
                    for (int i = 0; i < currentWorkflow.Methods.Count; i++)
                    {
                        Assembly assem = typeof(WorkflowBuilder).Assembly;
                        Type     opt   = assem.GetType("Giwer.workflowBuilder.Operations." + currentWorkflow.Methods[i].Split(' ')[0]);
                        if (opt.BaseType.Name == "SingleBandOperation")
                        {
                            if (k == 0)
                            {
                                GeoImageTools gt = new GeoImageTools(imgData);
                                byin = gt.getOneBandBytes(band);
                                SingleBandOperation op = (SingleBandOperation)Activator.CreateInstance(opt, new object[] { imgData, band, currentWorkflow.Pars[i] });
                                op.Execute();
                                byin  = op.Output;
                                byout = op.Output;
                                k     = 1;
                            }
                            else
                            {
                                SingleBandOperation op = (SingleBandOperation)Activator.CreateInstance(opt, new object[] { byin, imgData, currentWorkflow.Pars[i] });
                                op.Execute();
                                byin  = op.Output;
                                byout = op.Output;
                            }
                        }
                        if (opt.BaseType.Name == "MultiBandOperation")
                        {
                        }
                    }
                    if (chkSave.Checked)
                    {
                        SaveResult(imgData, byout, band);
                    }
                }
            }
            this.Cursor = Cursors.Default;
            progressWorkflow.Visible = false;
            MessageBox.Show("Save process has completed", "Save completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }