Esempio n. 1
0
 public DemoImageFile(HSIImage image, Form1 form, string p_xi_devive_sn)
 {
     exp_time_image           = form.exp_time;
     filterRangeStart         = form.filterRangeStart;
     filterRangeEnd           = form.filterRangeEnd;
     maximizeMode             = form.maximizeMode;
     statusParallelProcessing = form.statusParallelProcessing;
     compareSpectraMode       = form.compareSpectraMode;
     pictureStretchMode       = form.pictureStretchMode;
     derivationMode           = form.derivationMode;
     distanceMode             = form.distanceMode;
     resolutionMode           = form.resolutionMode;
     imageViewMode            = form.imageViewMode;
     numFramesToAvg           = form.numFramesToAvg;
     xi_devive_sn             = p_xi_devive_sn;
     sensor_height            = image.sensor_height;
     sensor_width             = image.sensor_width;
     bands             = image.bands;
     MAX_MATERIALS     = image.MAX_MATERIALS;
     exp_time_white    = image.exp_time_white;
     measured          = image.measured;
     darkMeasured      = image.darkMeasured;
     whiteMeasured     = image.whiteMeasured;
     numMaterialsToUse = image.numMaterialsToUse;
     whiteImageRAW     = new int[sensor_height, sensor_width];
     darkImageRAW      = new int[sensor_height, sensor_width];
     spectrum          = new double[MAX_MATERIALS + 1, bands];
     for (int i = 0; i < sensor_height; i++)
     {
         for (int j = 0; j < sensor_width; j++)
         {
             int[,] array = darkImageRAW;
             int num  = i;
             int num2 = j;
             int num3 = image.darkImageRAW[i, j];
             array[num, num2] = num3;
             int[,] array2    = whiteImageRAW;
             int num4 = i;
             int num5 = j;
             int num6 = image.whiteImageRAW[i, j];
             array2[num4, num5] = num6;
         }
     }
     for (int k = 0; k < MAX_MATERIALS + 1; k++)
     {
         for (int l = 0; l < bands; l++)
         {
             double[,] array3 = spectrum;
             int    num7 = k;
             int    num8 = l;
             double num9 = image.spectrum[k, l];
             array3[num7, num8] = num9;
         }
     }
     modus   = 1;
     dataSet = true;
 }
Esempio n. 2
0
 public bool setDemoSettings(HSIImage image, Form1 form)
 {
     if (modus != 0 || !dataSet)
     {
         return(false);
     }
     form.exp_time                 = exp_time_image;
     form.filterRangeStart         = filterRangeStart;
     form.filterRangeEnd           = filterRangeEnd;
     form.maximizeMode             = maximizeMode;
     form.statusParallelProcessing = statusParallelProcessing;
     form.compareSpectraMode       = compareSpectraMode;
     form.pictureStretchMode       = pictureStretchMode;
     form.derivationMode           = derivationMode;
     form.distanceMode             = distanceMode;
     form.resolutionMode           = resolutionMode;
     form.imageViewMode            = imageViewMode;
     form.numMaterials             = numMaterialsToUse;
     form.numFramesToAvg           = numFramesToAvg;
     image.exp_time_white          = exp_time_white;
     image.measured                = measured;
     image.darkMeasured            = darkMeasured;
     image.whiteMeasured           = whiteMeasured;
     image.numMaterialsToUse       = numMaterialsToUse;
     for (int i = 0; i < sensor_height; i++)
     {
         for (int j = 0; j < sensor_width; j++)
         {
             int[,] array = image.darkImageRAW;
             int num  = i;
             int num2 = j;
             int num3 = darkImageRAW[i, j];
             array[num, num2] = num3;
             int[,] array2    = image.whiteImageRAW;
             int num4 = i;
             int num5 = j;
             int num6 = whiteImageRAW[i, j];
             array2[num4, num5] = num6;
         }
     }
     for (int k = 0; k < MAX_MATERIALS + 1; k++)
     {
         for (int l = 0; l < bands; l++)
         {
             double[,] array3 = image.spectrum;
             int    num7 = k;
             int    num8 = l;
             double num9 = spectrum[k, l];
             array3[num7, num8] = num9;
         }
     }
     return(true);
 }
Esempio n. 3
0
        private bool saveHSIcube(HSIImage hsi_image, Bitmap newBitmap, bool useInterpolatedImage)
        {
            string           arg              = "";
            string           arg2             = "";
            string           arg3             = "";
            int              num              = 0;
            int              num2             = 0;
            NumberFormatInfo numberFormatInfo = new NumberFormatInfo();

            numberFormatInfo.NumberDecimalSeparator = ".";
            numberFormatInfo.NumberGroupSeparator   = ",";
            num  = form.maximizeActive();
            num2 = form.derivationActive();
            if (num == 1)
            {
                arg2 = "values normalized";
            }
            switch (num2)
            {
            case 1:
                arg3 = "1. derivation";
                break;

            case 2:
                arg3 = "2. derivation";
                break;
            }
            switch (xi_cameraModel)
            {
            case 308:
                arg = "LS100-NIR";
                break;

            case 136:
                arg = "SSM4x4-VIS";
                break;

            case 144:
                arg = "SSM5x5-NIR";
                break;
            }
            string text = $"{DateTime.Now:yyyyMMddHHmmss}";

            imageFileNameStart = $"{arg}_{xi_device_sn}_{text}";
            imageFileName      = $"{imageFileDirectory}{imageFileNameStart}.hdr";
            try
            {
                TextWriter textWriter = new StreamWriter(imageFileName);
                textWriter.WriteLine("ENVI");
                textWriter.WriteLine($"description = {{ XIMEA xiSpec {xi_device_name}, SerNr {xi_device_sn}, Sensor-SN {xi_sensor_sn}");
                if (num == 1 || num2 != 0)
                {
                    textWriter.WriteLine(string.Format("{0}{1}{2}", arg2, (num == 1 && num2 != 0) ? ", " : "", arg3));
                }
                textWriter.WriteLine($"date/time {text} }}");
                textWriter.WriteLine("sensor type = IMEC {0}", arg);
                textWriter.WriteLine("file type = ENVI Standard");
                textWriter.WriteLine("header offset = 0");
                if (useInterpolatedImage)
                {
                    textWriter.WriteLine("samples = {0}", hsi_image.width_interpol);
                    textWriter.WriteLine("lines = {0}", hsi_image.height_interpol);
                }
                else
                {
                    textWriter.WriteLine("samples = {0}", hsi_image.width_spatial);
                    textWriter.WriteLine("lines = {0}", hsi_image.height_spatial);
                }
                textWriter.WriteLine("bands = {0}", HSIParam.filter_nr_bands);
                textWriter.WriteLine("data type = 12");
                textWriter.WriteLine("interleave = bsq");
                textWriter.WriteLine("byte order = 0");
                textWriter.WriteLine("wavelength = {");
                for (int i = 0; i < HSIParam.filter_nr_bands; i++)
                {
                    textWriter.WriteLine(string.Format(" {0}{1}", HSIParam.array_wavelengths[HSIParam.spectrumPos_2_BandNr[i]].ToString(numberFormatInfo), (i >= HSIParam.filter_nr_bands - 1) ? "}" : ","));
                }
                textWriter.Close();
                imageFileName = $"{imageFileDirectory}{imageFileNameStart}.bsq";
                FileStream   fileStream   = new FileStream(imageFileName, FileMode.CreateNew);
                BinaryWriter binaryWriter = new BinaryWriter(fileStream);
                hsi_image.BSQwriteHSIImage(binaryWriter, useInterpolatedImage);
                binaryWriter.Close();
                fileStream.Close();
                imageFileName = $"{imageFileDirectory}{imageFileNameStart}.tif";
                SaveTiff16(newBitmap, imageFileName);
                if (ausgabe != null)
                {
                    ausgabe.AppendText($"HDR-file {imageFileNameStart} written\n");
                    ausgabe.ScrollToCaret();
                }
            }
            catch
            {
            }
            return(true);
        }