Exemplo n.º 1
0
        private void histogramToolStripButton_Click(object sender, EventArgs e)
        {
            cipFormHistogram form = new cipFormHistogram(this.picBoxModifyed.Image,this.GetCurrentRaster());

            if (form.ShowDialog()==DialogResult.OK)
            {
                if (form.Mode == HistogramMode.Equalize)
                    this.equalizeToolStripMenuItem_Click(sender, e);
                else
                {
                    if (form.Mode == HistogramMode.Normalize)
                        this.histogramNormalizeToolStripMenuItem_Click(sender, e);
                    else
                        #region Mode selection
                        switch (form.Mode)
                        {
                            case HistogramMode.StretchLuminance:
                                {
                                    if (!backgroundWorkerCip.IsBusy)
                                    {
                                        ImageFilter filter = new Cip.Filters.HistogramStretch(0, form.Level);
                                        backgroundWorkerCip.RunWorkerAsync(filter);
                                        this.CalculateHistogram();
                                    }
                                    break;
                                }
                            case HistogramMode.StretchLinkedChannels:
                                {
                                    if (!backgroundWorkerCip.IsBusy)
                                    {
                                        ImageFilter filter = new Cip.Filters.HistogramStretch(1, form.Level);
                                        backgroundWorkerCip.RunWorkerAsync(filter);
                                        this.CalculateHistogram();
                                    }
                                    break;
                                }
                            case HistogramMode.StretchIndependentChannels:
                                {
                                    if (!backgroundWorkerCip.IsBusy)
                                    {
                                        ImageFilter filter = new Cip.Filters.HistogramStretch(2, form.Level);
                                        backgroundWorkerCip.RunWorkerAsync(filter);
                                        this.CalculateHistogram();
                                    }
                                    break;
                                }
                        }
                        #endregion
                }
            }
        }
Exemplo n.º 2
0
 public void ReDraw()
 {
     switch (this.mode)
     {
         case HistogramMode.Equalize:
             {
                 HistogramEqualization filter = new HistogramEqualization();
                 Raster result = filter.ProcessWithoutWorker(this.raster);
                 result.ShowFilter(this.pBoxPreview);
                 break;
             }
         case HistogramMode.Normalize:
             {
                 HistogramNormalize filter = new HistogramNormalize();
                 Raster result = filter.ProcessWithoutWorker(this.raster);
                 if(result!=null)
                     result.ShowFilter(this.pBoxPreview);
                 break;
             }
         default:
             { 
                 int modeNum;
                 if (this.mode == HistogramMode.StretchLuminance)
                     modeNum = 0;
                 else if(this.mode == HistogramMode.StretchLinkedChannels)
                         modeNum = 1;
                      else
                         modeNum = 2;
                 HistogramStretch filter = new HistogramStretch(modeNum, this.level);
                 Raster result = filter.ProcessWithoutWorker(this.raster);
                 if (result != null)
                     result.ShowFilter(this.pBoxPreview);
                 break;
             }
     }
 }