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);
            }
        }
示例#2
0
        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);
        }