private void ApplyFilter() { RasterImage runImage = _originalBitmap.Clone(); try { MultiscaleEnhancementCommandType type = MultiscaleEnhancementCommandType.Gaussian; switch (_cbFilter.SelectedIndex) { case 0: type = MultiscaleEnhancementCommandType.Normal; break; case 1: type = MultiscaleEnhancementCommandType.Resample; break; case 2: type = MultiscaleEnhancementCommandType.Bicubic; break; case 3: type = MultiscaleEnhancementCommandType.Gaussian; break; } MultiscaleEnhancementCommandFlags flags = MultiscaleEnhancementCommandFlags.None; if (_cbEdge.Checked) { flags |= MultiscaleEnhancementCommandFlags.EdgeEnhancement; } if (_cbLatitude.Checked) { flags |= MultiscaleEnhancementCommandFlags.LatitudeReduction; } MultiscaleEnhancementCommand command = new MultiscaleEnhancementCommand( Convert.ToInt32(_numContrast.Value * 100), (_cbEdgeLevel.Checked) ? Convert.ToInt32(_numEdgeLevel.Value) : -1, (_cbEdgeCoef.Checked) ? Convert.ToInt32(_numEdgeCoef.Value * 100) : -1, (_cbLatLevel.Checked) ? Convert.ToInt32(_numLatLevel.Value) : -1, (_cbLatCoef.Checked) ? Convert.ToInt32(_numLatCoef.Value * 100) : -1, type, flags); command.Run(runImage); _viewer.Image = runImage; } catch (System.Exception ex) { Messager.ShowError(this, ex); } }
public static void MultiscaleEnhancement(RasterImage image, params string[] parameters) { MultiscaleEnhancementCommand cmd = new MultiscaleEnhancementCommand(); int contrast, edgeLevels, edgeCoeff, latLevels, latCoeff; MultiscaleEnhancementCommandType enhancementType = MultiscaleEnhancementCommandType.Gaussian; if (parameters.Length >= 6) { if (!int.TryParse(parameters[0], out contrast)) { return; } if (!int.TryParse(parameters[1], out edgeLevels)) { return; } if (!int.TryParse(parameters[2], out edgeCoeff)) { return; } if (!int.TryParse(parameters[3], out latLevels)) { return; } if (!int.TryParse(parameters[4], out latCoeff)) { return; } parameters[5].TryParse <MultiscaleEnhancementCommandType>(out enhancementType); cmd.Contrast = contrast; cmd.EdgeLevels = edgeLevels; cmd.EdgeCoefficient = edgeCoeff; cmd.LatitudeLevels = latLevels; cmd.LatitudeCoefficient = latCoeff; cmd.Type = enhancementType; cmd.Flags = cmd.Flags | MultiscaleEnhancementCommandFlags.DontUseThreading; cmd.Run(image); } }
private void ApplyFilter() { MultiscaleEnhancementCommandType type = MultiscaleEnhancementCommandType.Gaussian; switch (_cbFilter.SelectedIndex) { case 0: type = MultiscaleEnhancementCommandType.Normal; break; case 1: type = MultiscaleEnhancementCommandType.Resample; break; case 2: type = MultiscaleEnhancementCommandType.Bicubic; break; case 3: type = MultiscaleEnhancementCommandType.Gaussian; break; } MultiscaleEnhancementCommandFlags flags = MultiscaleEnhancementCommandFlags.None; if (_cbEdge.Checked) { flags |= MultiscaleEnhancementCommandFlags.EdgeEnhancement; } if (_cbLatitude.Checked) { flags |= MultiscaleEnhancementCommandFlags.LatitudeReduction; } MultiscaleEnhancementCommand command = new MultiscaleEnhancementCommand( Convert.ToInt32(_numContrast.Value * 100), (_cbEdgeLevel.Checked) ? Convert.ToInt32(_numEdgeLevel.Value) : -1, (_cbEdgeCoef.Checked) ? Convert.ToInt32(_numEdgeCoef.Value * 100) : -1, (_cbLatLevel.Checked) ? Convert.ToInt32(_numLatLevel.Value) : -1, (_cbLatCoef.Checked) ? Convert.ToInt32(_numLatCoef.Value * 100) : -1, type, flags); _mainForm.FilterRunCommand(command, true, false); }