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(); }
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); }
/// <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(); }
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(); }
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"); }
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(); } }
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(); }
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); }
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(); }
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(); }
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); }
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(); }
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; }
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(); }
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); }
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); }
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(); }
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(); }
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(); }
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(); }
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); }
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(); }
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); }
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(); }
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(); }
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; }
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; }