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 } } }
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; } } }