Esempio n. 1
0
        private void exctractSliceToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int CurrentZ = (int)this.numericUpDownZPos.Value;

            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImage NewImage = new cImage(this.Sender.AssociatedImage.Width, this.Sender.AssociatedImage.Height, 1, this.Sender.AssociatedImage.GetNumChannels());
            NewImage.Name = this.Sender.AssociatedImage.Name + " [Z=" + CurrentZ + "]";
            NewImage.Resolution = new _3D.cPoint3D(this.Sender.AssociatedImage.Resolution);

            for (int i = 0; i < this.Sender.AssociatedImage.GetNumChannels(); i++)
            {

                Array.Copy(this.Sender.AssociatedImage.SingleChannelImage[i].Data, CurrentZ * this.Sender.AssociatedImage.SliceSize,
                            NewImage.SingleChannelImage[i].Data, 0,
                            NewImage.ImageSize);
            }
            NewView.SetInputData(NewImage);
            NewView.Run();
        }
Esempio n. 2
0
        private void ToolStripMenuItem_GeometricalCrop(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            Point Bottom = new Point(mRect.Left, mRect.Top);
            Point ConvertedBottom = ConvertPanelCoordToImageCoord(Bottom);

            Point Top = new Point(mRect.Right, mRect.Bottom);
            Point ConvertedTop = ConvertPanelCoordToImageCoord(Top);

            cImage CroppedImage = this.AssociatedImage.Crop(new cPoint3D(ConvertedBottom.X, ConvertedBottom.Y, 0), new cPoint3D(ConvertedTop.X, ConvertedTop.Y, 0));

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);

            NewView.SetInputData(CroppedImage);
            NewView.Run();
            NewView.MyImageViewer.IP.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 3
0
        /// <summary>
        /// Display the information window related to the selected well
        /// </summary>
        private void ToolStripMenuItem_Image(object sender, EventArgs e)
        {
            int Field = (int)cGlobalInfo.OptionsWindow.numericUpDownDefaultField.Value;

            cDisplaySingleImage IV = new cDisplaySingleImage();

            cGetImageFromWells IFW = new cGetImageFromWells();
            IFW.SetInputData(new cListWells(this));
            IFW.ListProperties.FindByName("Field").SetNewValue((int)0);

            if(cGlobalInfo.OptionsWindow.numericUpDownImageAccessNumberOfFields.Value>1)
                IFW.ListProperties.FindByName("Field").IsGUIforValue = true;
            if (IFW.Run().IsSucceed == false)
            {
                return;
            }

            IV.SetInputData(IFW.GetOutPut());
            IV.Title = this.GetShortInfo() + " - Field: " + ((int)(IFW.ListProperties.FindByName("Field").GetValue()));
            IV.IsDisplayScale = true;
            IV.IsUseSavedDefaultDisplayProperties = true;
            IV.Run();
        }
Esempio n. 4
0
        private void ToolStripMenuItem_DisplayImage(object sender, EventArgs e)
        {
            List<cImageMetaInfo> ListInfo = cGlobalInfo.ImageAccessor.GetImageInfo(this);
            cImage Image = new cImage(ListInfo);
            this.BD_BoxMax.Z = this.BD_BoxMin.Z = 0;

               // this.BD_BoxMin.Y = Image.Height - this.BD_BoxMin.Y;
               // this.BD_BoxMax.Y = Image.Height - this.BD_BoxMax.Y;

            if (this.BD_BoxMin.Y > this.BD_BoxMax.Y)
            {
                double Tmp = this.BD_BoxMin.Y;
                this.BD_BoxMin.Y = this.BD_BoxMax.Y;
                this.BD_BoxMax.Y = Tmp;
            }

            cImage CroppedImaged = Image.Crop(this.BD_BoxMin, this.BD_BoxMax);
            cDisplaySingleImage IV = new cDisplaySingleImage();
            IV.IsUseSavedDefaultDisplayProperties = true;
            IV.DefaultZoom = 100;
            IV.Title = "[Plate] " + this.AssociatedWell.AssociatedPlate.GetName() + " - [Well] " + this.AssociatedWell.GetPos() + " - [Field] " + this.ImageField + " - " + this.CellularPhenotypeType.Name;
            IV.SetInputData(CroppedImaged);
            IV.Run();
        }
Esempio n. 5
0
        public void CurrentPanel_DragDrop(object sender, DragEventArgs e)
        {
            cImage SourceImage = (cImage)e.Data.GetData(typeof(cImage));

            cDisplaySingleImage NewView = new cDisplaySingleImage();
            cImage NewIm = new cImage(SourceImage.Width, SourceImage.Height, SourceImage.Depth, SourceImage.GetNumChannels() + this.AssociatedImage.GetNumChannels());

            int IdxChannel = 0;
            for (int i = 0; i < SourceImage.GetNumChannels(); i++)
                Array.Copy(SourceImage.SingleChannelImage[i].Data, NewIm.SingleChannelImage[IdxChannel++].Data, NewIm.SliceSize);

            for (int i = 0; i < this.AssociatedImage.GetNumChannels(); i++)
                Array.Copy(this.AssociatedImage.SingleChannelImage[i].Data, NewIm.SingleChannelImage[IdxChannel++].Data, NewIm.SliceSize);

            NewView.SetInputData(NewIm);

            NewView.Run();

            cGlobalInfo.WindowHCSAnalyzer.richTextBoxConsole.AppendText("DragNDrop: from " + SourceImage.Name + " to " + this.AssociatedImage.Name + "\n");
        }
Esempio n. 6
0
        private void ToolStripMenuItem_SplitByChannels(object sender, EventArgs e)
        {
            for (int i = 0; i < this.AssociatedImage.GetNumChannels(); i++)
            {
                cDisplaySingleImage NewView = new cDisplaySingleImage();
                cImage NewImage = new cImage(this.AssociatedImage.Width, this.AssociatedImage.Height, this.AssociatedImage.Depth, 1);
                NewImage.Name = this.AssociatedImage.Name + " [" + this.AssociatedImage.SingleChannelImage[i].Name + "]";
                NewImage.Resolution = new cPoint3D(this.AssociatedImage.Resolution);

                Array.Copy(this.AssociatedImage.SingleChannelImage[i].Data, NewImage.SingleChannelImage[0].Data, NewImage.ImageSize);

                NewView.SetInputData(NewImage);
                NewView.Run();
            }
        }
Esempio n. 7
0
        private void ToolStripMenuItem_SegmentationMeanShift(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageSegmentationMeanShift MS = new cImageSegmentationMeanShift();
            MS.SetInputData(this.AssociatedImage);
            //ME.IsInvert = true;
            MS.Run();
            NewView.SetInputData(MS.GetOutPut());

            NewView.Run();
        }
Esempio n. 8
0
        private void ToolStripMenuItem_Morpho_Erode(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageMorphoErode ME = new cImageMorphoErode();
            ME.SetInputData(this.AssociatedImage);
            ME.Iterations = 3;
            ME.Run();
            NewView.SetInputData(ME.GetOutPut());

            NewView.Run();

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);
            NewView.MyImageViewer.IP.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 9
0
        private void ToolStripMenuItem_Edges_Canny(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFilterCanny FC = new cImageFilterCanny();
            FC.SetInputData(this.AssociatedImage);
            FC.GreyThreshold = 10;
            FC.GreyThresholdLinkin = 60;
            FC.Run();
            NewView.SetInputData(FC.GetOutPut());

            NewView.Run();
        }
Esempio n. 10
0
        private void ToolStripMenuItem_BitmapToImage(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            Bitmap BMP = this.GetBitmap();
            if (BMP == null) return;

            cImage NewImage = new cImage(BMP.Width, BMP.Height, 1, 3);
            NewImage.Name = "RGB_Bitmap(" + this.AssociatedImage.Name + ")";
            NewImage.Resolution = new cPoint3D(this.AssociatedImage.Resolution);

            for (int j = 0; j < BMP.Height; j++)
            {
                for (int i = 0; i < BMP.Width; i++)
                {
                    Color C = BMP.GetPixel(i, j);
                    NewImage.SingleChannelImage[0].Data[i + j * NewImage.Width] = C.R;
                    NewImage.SingleChannelImage[1].Data[i + j * NewImage.Width] = C.G;
                    NewImage.SingleChannelImage[2].Data[i + j * NewImage.Width] = C.B;
                }
            }

            NewView.SetInputData(NewImage);
            NewView.Run();
        }
Esempio n. 11
0
        private void ToolStripMenuItem_AddNoise(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageAddNoise AN = new cImageAddNoise();
            AN.SetInputData(this.AssociatedImage);
            AN.DistributionType = Classes.Base_Classes.Data.eRandDistributionType.GAUSSIAN;
            AN.Mean = 0;
            AN.Stdev = 10;
            //FLM.DistanceType = Emgu.CV.CvEnum.DIST_TYPE.CV_DIST_L2;
            AN.Run();
            NewView.SetInputData(AN.GetOutPut());

            NewView.Run();

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);

            NewView.MyImageViewer.IP.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 12
0
        private void ToolStripMenuItem_DisplayAsImage(object sender, EventArgs e)
        {
            cConvertToImage CI = new cConvertToImage();
            CI.SetInputData(this.Input);
            CI.Run();

            cDisplaySingleImage DSI = new cDisplaySingleImage();
            DSI.SetInputData(CI.GetOutPut());
            DSI.Run();
        }
Esempio n. 13
0
        public cFeedBackMessage Run()
        {
            base.Start();

            object _firstValue = base.ListProperties.FindByName("Width");
            int Width = 0;
            if (_firstValue == null)
            {
                base.GenerateError("-Width- not found !");
                return base.FeedBackMessage;
            }
            try
            {
                cProperty TmpProp = (cProperty)_firstValue;
                Width = (int)TmpProp.GetValue();
            }
            catch (Exception)
            {
                base.GenerateError("-Width- Size cast didn't work");
                return base.FeedBackMessage;
            }

            _firstValue = base.ListProperties.FindByName("Height");
            int Height = 0;
            if (_firstValue == null)
            {
                base.GenerateError("-Height- not found !");
                return base.FeedBackMessage;
            }
            try
            {
                cProperty TmpProp = (cProperty)_firstValue;
                Height = (int)TmpProp.GetValue();
            }
            catch (Exception)
            {
                base.GenerateError("-Height- Size cast didn't work");
                return base.FeedBackMessage;
            }

            _firstValue = base.ListProperties.FindByName("Depth");
            int Depth = 0;
            if (_firstValue == null)
            {
                base.GenerateError("-Depth- not found !");
                return base.FeedBackMessage;
            }
            try
            {
                cProperty TmpProp = (cProperty)_firstValue;
                Depth = (int)TmpProp.GetValue();
            }
            catch (Exception)
            {
                base.GenerateError("-Depth- Size cast didn't work");
                return base.FeedBackMessage;
            }

            cImage NewImage = new cImage(Width, Height, Depth, 1);
            NewImage.Name = "Image [" + Width + ", " + Height + ", " + Depth + "]";

            cDisplaySingleImage DSI = new cDisplaySingleImage();
            DSI.SetInputData(NewImage);
            DSI.Run();

            base.End();
            return FeedBackMessage;
        }
Esempio n. 14
0
        private void ToolStripMenuItem_DisplayImages(object sender, EventArgs e)
        {
            //if (cWell.cGlobalInfo.ImageAccessor.ImagingPlatformType == HCSAnalyzer.Classes.General_Types.eImagingPlatformType.OPERETTA) return;

            cGlobalInfo.ImageAccessor.Field = 1;// (int)this.numericUpDownField.Value;
            //string FileName = cWell.cGlobalInfo.ImageAccessor.GetImageFileName(this);

            foreach (cWell item in this.ListActiveWells)
            {

                List<cImageMetaInfo> ListMetaInfo = cGlobalInfo.ImageAccessor.GetImageInfo(item);

                cImage Image = new cImage(ListMetaInfo);
                Image.Name = "Image [" + item.GetShortInfo() + "] - Field [" + cGlobalInfo.ImageAccessor.Field + "]";

                cImage FinaleImage = Image.Crop(new cPoint3D(400, 400, 0), new cPoint3D(800 + 400, 800 + 400, 0));

                //cImageGeometricResize IR = new cImageGeometricResize();
                //IR.SetInputData(Image);
                //IR.InterpolationType = Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR;
                //IR.ListProperties.UpdateValueByName("Scale", (double)0.25);
                //IR.Run();

                //cImage FinaleImage = IR.GetOutPut();
                //FinaleImage.Name = "Image [" + item.GetShortInfo()+"] - Field ["+ cWell.cGlobalInfo.ImageAccessor.Field + "]";

                cDisplaySingleImage IV = new cDisplaySingleImage();
                IV.SetInputData(FinaleImage);
                IV.Run();

            }

            //cImage IM = new cImage(this.Info);
            //if (IM == null) return;

            //cImageViewer IV = new cImageViewer();
            //IV.SetImage(IM);
            //IV.Show();

            //cViewerImage3D VI3D = new cViewerImage3D();

            //foreach (cWell item in this.ListActiveWells)
            //{
            //    vtkJPEGReader JPEGReader = vtkJPEGReader.New();
            //    JPEGReader.SetFileName(item.Info);
            //    JPEGReader.Update();
            //    vtkImageData ID0 = JPEGReader.GetOutput();
            //    VI3D.SetInputData(ID0);
            //}

            ////    cVolume3D Volume3D0 = new cVolume3D(ID0, new HCSAnalyzer.Classes._3D.cPoint3D(0, 0, 0));

            //VI3D.Run();

            //cDisplayToWindow DTW = new cDisplayToWindow();
            //DTW.SetInputData(VI3D.GetOutPut());
            //DTW.Run();
            //DTW.Display();
        }
Esempio n. 15
0
        private void ToolStripMenuItem_GeometricalFlip(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageGeometricFlip GF = new cImageGeometricFlip();
            GF.SetInputData(this.AssociatedImage);

            GF.ListProperties.FindByName("Horizontal").SetNewValue((bool)true);
            GF.ListProperties.FindByName("Horizontal").IsGUIforValue = true;
            cFeedBackMessage FeedBackMessage = GF.Run();

            cGlobalInfo.WindowHCSAnalyzer.richTextBoxConsole.AppendText(FeedBackMessage.GetFullFeedBack());
            if (FeedBackMessage.IsSucceed == false) return;

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);

            NewView.SetInputData(GF.GetOutPut());
            NewView.Run();

            //NewView.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 16
0
        private void ToolStripMenuItem_GeometricalResize(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageGeometricResize GR = new cImageGeometricResize();
            GR.SetInputData(this.AssociatedImage);
            GR.SliceIndex = (int)ZNavigator.numericUpDownZPos.Value;
            GR.InterpolationType = Emgu.CV.CvEnum.Inter.Linear;

            GR.ListProperties.FindByName("Scale").SetNewValue((double)0.5);
            GR.ListProperties.FindByName("Scale").IsGUIforValue = true;

            GR.ListProperties.FindByName("Maximum Width").SetNewValue((int)0);
            GR.ListProperties.FindByName("Maximum Width").IsGUIforValue = true;

            cFeedBackMessage FeedBackMessage = GR.Run();

            cGlobalInfo.WindowHCSAnalyzer.richTextBoxConsole.AppendText(FeedBackMessage.GetFullFeedBack());
            if (FeedBackMessage.IsSucceed == false) return;

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);

            NewView.SetInputData(GR.GetOutPut());
            NewView.Run();

            //NewView.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 17
0
        private void ToolStripMenuItem_Edges_Laplace(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFilterLaplace FL = new cImageFilterLaplace();
            FL.SetInputData(this.AssociatedImage);
            FL.Aperture = 3;
            FL.Run();
            NewView.SetInputData(FL.GetOutPut());

            NewView.Run();
        }
Esempio n. 18
0
        private void ToolStripMenuItem_SegmentationKMeans(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageSegmentationKMeans KM = new cImageSegmentationKMeans();

            KM.SetInputData(this.AssociatedImage);
            //ME.IsInvert = true;
            // KM.ListChannelsToBeProcessed = this.AssociatedImage.GetListChannels();
            KM.ListProperties.FindByName("Number of clusters").SetNewValue((int)3);
            KM.ListProperties.FindByName("Number of clusters").IsGUIforValue = true;

            KM.Run();
            NewView.SetInputData(KM.GetOutPut());

            NewView.Run();
        }
Esempio n. 19
0
        private void ToolStripMenuItem_Edges_Sobel(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFilterSobel FS = new cImageFilterSobel();
            FS.SetInputData(this.AssociatedImage);
            FS.Aperture = 3;
            FS.X_Order = 1;
            FS.Y_Order = 1;
            FS.Run();
            NewView.SetInputData(FS.GetOutPut());

            NewView.Run();
        }
Esempio n. 20
0
        private void ToolStripMenuItem_SegmentationThreshold(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageSegmentationThreshold ME = new cImageSegmentationThreshold();
            ME.SetInputData(this.AssociatedImage);
            ME.ListProperties.FindByName("Threshold").SetNewValue((double)100);
            ME.ListProperties.FindByName("Threshold").IsGUIforValue = true;
            ME.IsInvert = true;
            ME.Run();
            NewView.SetInputData(ME.GetOutPut());

            NewView.Run();
        }
Esempio n. 21
0
        private void ToolStripMenuItem_Filtering_GaussianConvolution(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            ImageAnalysisFiltering.cImageFilterGaussianConvolution GaussianBlur = new ImageAnalysisFiltering.cImageFilterGaussianConvolution();
            GaussianBlur.SetInputData(this.AssociatedImage);
            GaussianBlur.ListProperties.FindByName("Kernel Size").SetNewValue((int)3);
            GaussianBlur.ListProperties.FindByName("Kernel Size").IsGUIforValue = true;
            cFeedBackMessage FeedBackMessage = GaussianBlur.Run();
            if (FeedBackMessage.IsSucceed == false) return;
            NewView.SetInputData(GaussianBlur.GetOutPut());

            NewView.Run();

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);
            NewView.MyImageViewer.IP.LUTManager.UpdateFromDisplayProperties(TmpProp);
        }
Esempio n. 22
0
        private void ToolStripMenuItem_TransformsDistanceMap(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageDistanceMap DM = new cImageDistanceMap();
            DM.SetInputData(this.AssociatedImage);
            DM.DistanceType = Emgu.CV.CvEnum.DistType.L2;
            DM.Run();
            NewView.SetInputData(DM.GetOutPut());

            NewView.Run();
        }
Esempio n. 23
0
        private void ToolStripMenuItem_Filtering_Median(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFilterMedian FM = new cImageFilterMedian();
            FM.SetInputData(this.AssociatedImage);

            FM.ListProperties.FindByName("Kernel Size").SetNewValue((int)5);
            FM.ListProperties.FindByName("Kernel Size").IsGUIforValue = true;
            cFeedBackMessage FeedBackMessage = FM.Run();

            //GlobalInfo.WindowHCSAnalyzer.richTextBoxConsole.AppendText(FeedBackMessage.GetFullFeedBack());
            if (FeedBackMessage.IsSucceed == false) return;

            NewView.SetInputData(FM.GetOutPut());

            NewView.Run();

            cImageDisplayProperties TmpProp = new cImageDisplayProperties();
            TmpProp.UpdateFromLUTManager(this.LUTManager);
            NewView.MyImageViewer.IP.LUTManager.UpdateFromDisplayProperties(TmpProp);

            //GlobalInfo.DisplayViewer(NewView);
        }
Esempio n. 24
0
        private void ToolStripMenuItem_FindContours(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFindContours FC = new cImageFindContours();
            FC.SetInputData(this.AssociatedImage);

            FC.Run();
            NewView.SetInputData(FC.GetOutPut());

            NewView.Run();
        }
Esempio n. 25
0
        private void ToolStripMenuItem_FindLocalMax(object sender, EventArgs e)
        {
            cDisplaySingleImage NewView = new cDisplaySingleImage();

            cImageFindLocalMax FLM = new cImageFindLocalMax();
            FLM.SetInputData(this.AssociatedImage);
            //FLM.DistanceType = Emgu.CV.CvEnum.DIST_TYPE.CV_DIST_L2;
            FLM.Run();
            NewView.SetInputData(FLM.GetOutPut());

            NewView.Run();
        }
Esempio n. 26
0
        private void toolStripMenuItemLoadImage_Click(object sender, EventArgs e)
        {
            OpenFileDialog CurrOpenFileDialog = new OpenFileDialog();
            CurrOpenFileDialog.Filter = "TIF Files (*.tif)|*.tif|JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|JPG Files (*.jpg)|*.jpg|GIF Files (*.gif)|*.gif|BMP Files (*.bmp)|*.bmp|Cellomics Files (*.c01)|*.c01|Zeiss LSM Files (*.lsm)|*.lsm|MetaMorph Stack  STK Files (*.stk)|*.stk";
            //CurrOpenFileDialog.Filter = "Tif files (*.tif)|*.tif";
            DialogResult Res = CurrOpenFileDialog.ShowDialog();
            if (Res != DialogResult.OK) return;
            cImage NewIm = new cImage(CurrOpenFileDialog/*CurrOpenFileDialog.FileName*/);

            cDisplaySingleImage NewView = new cDisplaySingleImage();
            NewView.SetInputData(NewIm);
            NewView.Run();
            //if((NewIm.Width>500)||(NewIm.Height>500))
            //    NewView.ConstraintImageSize = new Point(500, 500);

            //GlobalInfo.DisplayViewer(NewView);
            return;
        }
Esempio n. 27
0
        private void buttonProcess_Click(object sender, EventArgs e)
        {
            ImageWidth = (int)numericUpDownMapWidth.Value;
            ImageHeight = (int)numericUpDownMapHeight.Value;

            if (this.radioButton2D.Checked) ImageDepth = 1;
            else
                ImageDepth = (int)numericUpDownMapDepth.Value;

            //GlobalInfo.ListCellularPhenotypes[(int)MachineLearning.Classes[j]]
            cImageDrawKernel GK = new cImageDrawKernel();
            GK.sigma_x = (int)numericUpDownKernelSize.Value;
            GK.sigma_y = (int)numericUpDownKernelSize.Value;
            GK.sigma_z = (int)numericUpDownKernelSize.Value;
            GK.Run();

            cImage K = GK.GetOutPut();

            if (Parent.comboBoxAxeY.SelectedIndex == -1) return;
            if (Parent.comboBoxVolume.SelectedIndex == -1) return;

            cExtendedList ListVolumes = new cExtendedList();

            ListX.Clear();
            ListY.Clear();
            ListZ.Clear();

            cExtendedTable TableForDataToBeAnalyzed = Parent.GetActiveSignatures(false);

            for (int j = 0; j < TableForDataToBeAnalyzed[0].Count; j++)
            {
                ListX.Add(TableForDataToBeAnalyzed[Parent.comboBoxAxeX.SelectedIndex][j]);
                ListY.Add(TableForDataToBeAnalyzed[Parent.comboBoxAxeY.SelectedIndex][j]);
            }

            //MaxX = ListX.Max();
            //MinX = ListX.Min();

            //MaxY = ListY.Max();
            //MinY = ListY.Min();

            MaxX = Parent.chartForPoints.ChartAreas[0].AxisX.Maximum;
            MinX = Parent.chartForPoints.ChartAreas[0].AxisX.Minimum;

            MaxY = Parent.chartForPoints.ChartAreas[0].AxisY.Maximum;
            MinY = Parent.chartForPoints.ChartAreas[0].AxisY.Minimum;

            //MaxY = Parent.MaxY;
            //MinY = Parent.MinY;

            if (this.radioButton3D.Checked)
            {
                for (int j = 0; j < TableForDataToBeAnalyzed[0].Count; j++)
                {
                    ListZ.Add(TableForDataToBeAnalyzed[Parent.comboBoxVolume.SelectedIndex][j]);
                }
                MaxZ = ListZ.Max();
                MinZ = ListZ.Min();
            }

            DensityMaps = new cImage(ImageWidth, ImageHeight, ImageDepth, cGlobalInfo.ListCellularPhenotypes.Count);

            int[] ClassPopulations = new int[cGlobalInfo.ListCellularPhenotypes.Count];

            if (this.radioButton3D.Checked)
            {
                int Idx = 0;
                for (int j = 0; j < Parent.InputTable[0].Count; j++)
                {
                    if (Parent.PanelPhenotypeSelection.GetListSelectedClass()[(int)Parent.MachineLearning.Classes[j]])
                    {
                        double TmpValueX = (ImageWidth * (ListX[Idx] - MinX)) / (MaxX - MinX) - K.Width / 2;
                        double TmpValueY = ImageHeight - (ImageHeight * (ListY[Idx] - MinY)) / (MaxY - MinY) - K.Height / 2;
                        double TmpValueZ = ImageDepth - (ImageDepth * (ListZ[Idx] - MinZ)) / (MaxZ - MinZ) - K.Depth / 2;

                        DensityMaps.AddInto(K, (int)TmpValueX, (int)TmpValueY, (int)TmpValueZ, (int)Parent.MachineLearning.Classes[j]);
                        ClassPopulations[(int)Parent.MachineLearning.Classes[j]]++;
                        Idx++;
                    }
                }
            }
            else
            {
                int Idx = 0;
                for (int j = 0; j < Parent.InputTable[0].Count; j++)
                {
                    if (Parent.PanelPhenotypeSelection.GetListSelectedClass()[(int)Parent.MachineLearning.Classes[j]])
                    {
                        double TmpValueX = (ImageWidth * (ListX[Idx] - MinX)) / (MaxX - MinX) - K.Width / 2;
                        double TmpValueY = ImageHeight - (ImageHeight * (ListY[Idx] - MinY)) / (MaxY - MinY) - K.Height / 2;

                        DensityMaps.AddInto(K, (int)TmpValueX, (int)TmpValueY, 0, (int)Parent.MachineLearning.Classes[j]);
                        ClassPopulations[(int)Parent.MachineLearning.Classes[j]]++;
                        Idx++;
                    }
                }
            }
            cListExtendedTable TablesForDensity = new cListExtendedTable(DensityMaps);

            for (int idxChannel = 0; idxChannel < DensityMaps.GetNumChannels(); idxChannel++)
            {
                DensityMaps.SingleChannelImage[idxChannel].Name = cGlobalInfo.ListCellularPhenotypes[idxChannel].Name;
                float Sum = 1;
                if (checkBoxNormalized.Checked)
                {
                    Sum = (float)TablesForDensity[idxChannel].Sum();
                    if (Sum <= 0.0) continue;
                    for (int i = 0; i < DensityMaps.SingleChannelImage[idxChannel].Data.Length; i++)
                    {
                        //if (ClassPopulations[idxChannel] > 0)
                        DensityMaps.SingleChannelImage[idxChannel].Data[i] = (100 * DensityMaps.SingleChannelImage[idxChannel].Data[i]) / Sum;
                    }
                }
                else
                {
                    for (int i = 0; i < DensityMaps.SingleChannelImage[idxChannel].Data.Length; i++)
                    {
                        // if (ClassPopulations[idxChannel] > 0)
                        DensityMaps.SingleChannelImage[idxChannel].Data[i] = DensityMaps.SingleChannelImage[idxChannel].Data[i];
                    }
                }
            }

            cDisplaySingleImage IV = new cDisplaySingleImage();
            DensityMaps.Name = "Density Maps. K["+ this.numericUpDownKernelSize.Value +"]";

            if (this.checkBoxModifyColors.Checked)
                IV.ListLinearMaxColor = new List<Color>();

            int RealIdxChannel = 0;
            for (int idxChannel = 0; idxChannel < ClassPopulations.Length; idxChannel++)
            {
                if (ClassPopulations[idxChannel] == 0)
                    DensityMaps.SingleChannelImage.RemoveAt(RealIdxChannel--);
                else
                {
                    if (this.checkBoxModifyColors.Checked)
                    IV.ListLinearMaxColor.Add(cGlobalInfo.ListCellularPhenotypes[idxChannel].ColourForDisplay);
                }
                RealIdxChannel++;
            }

            IV.SetInputData(DensityMaps);
            IV.Run();

            this.buttonApply.Enabled = true;
        }