コード例 #1
0
        public Bitmap Negativo(Bitmap Imagem, int opcao)
        {
            // Opção =>  = 0  Negativo Escala Cinza ;  != 0  Negativo Normal
            Largura = Imagem.Width;
            Altura  = Imagem.Height;
            Color  originalCor, CorEmNegativo;
            Bitmap ImagemCinza, NovaImagem = new Bitmap(Largura, Altura);

            if (opcao == 0)
            {
                FiltroCinza filtro = new FiltroCinza();
                ImagemCinza = filtro.HSI(Imagem);

                for (int i = 0; i < Largura; i++)
                {
                    for (int j = 0; j < Altura; j++)
                    {
                        originalCor   = ImagemCinza.GetPixel(i, j);
                        CorEmNegativo = Color.FromArgb(255 - originalCor.R,
                                                       255 - originalCor.G, 255 - originalCor.B);

                        NovaImagem.SetPixel(i, j, CorEmNegativo);
                    }
                }
            }
            else
            {
                for (int i = 0; i < Largura; i++)
                {
                    for (int j = 0; j < Altura; j++)
                    {
                        originalCor   = Imagem.GetPixel(i, j);
                        CorEmNegativo = Color.FromArgb(255 - originalCor.R, 255 - originalCor.G, 255 - originalCor.B);

                        NovaImagem.SetPixel(i, j, CorEmNegativo);
                    }
                }
            }
            return(NovaImagem);
        }
コード例 #2
0
        private void cmbFilterType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (pictureBoxOriginal.Image == null)
            {
                return;
            }

            string filterCase = (string)cmbFilterType.SelectedItem;

            Bitmap Image = new Bitmap(pictureBoxOriginal.Image);

            switch (filterCase)
            {
            case "Média":
                FiltroMedia filtroMedia = new FiltroMedia();
                pictureBoxResultado.Image = filtroMedia.Media(Image);
                break;

            case "Mediana":
                FiltroMediana filtroMediana = new FiltroMediana();
                pictureBoxResultado.Image = filtroMediana.Mediana(Image);
                break;

            case "Máximo":
                FiltroMinMax filtroMax = new FiltroMinMax();
                pictureBoxResultado.Image = filtroMax.MinMax(Image, 1);
                break;

            case "Mínimo":
                //
                FiltroMinMax filtroMin = new FiltroMinMax();
                pictureBoxResultado.Image = filtroMin.MinMax(Image, 0);
                break;

            case "Moda":
                //
                FiltroModa filtroModa = new FiltroModa();
                pictureBoxResultado.Image = filtroModa.Moda(Image);
                break;

            case "Média Ponderada":
                //
                FiltroMedia filtroMediaP = new FiltroMedia();
                pictureBoxResultado.Image = filtroMediaP.MediaPonderada(Image);
                break;

            case "Sobel":
                //
                FiltroBordas filtroSobel = new FiltroBordas();
                pictureBoxResultado.Image = filtroSobel.Sobel(Image, 0);
                break;

            case "Sobel Inverso":
                //
                FiltroBordas filtroSobelInv = new FiltroBordas();
                pictureBoxResultado.Image = filtroSobelInv.Sobel(Image, 1);
                break;

            case "Prewitt":
                //
                FiltroBordas filtroPrewitt = new FiltroBordas();
                pictureBoxResultado.Image = filtroPrewitt.Prewitt(Image, 0);
                break;

            case "Prewitt Inverso":
                //
                FiltroBordas filtroPrewittInv = new FiltroBordas();
                pictureBoxResultado.Image = filtroPrewittInv.Prewitt(Image, 1);
                break;

            case "Roberts":
                //
                FiltroBordas filtroRoberts = new FiltroBordas();
                pictureBoxResultado.Image = filtroRoberts.Roberts(Image, 0);
                break;

            case "Roberts Inverso":
                //
                FiltroBordas filtroRobertsInv = new FiltroBordas();
                pictureBoxResultado.Image = filtroRobertsInv.Roberts(Image, 1);
                break;

            case "Laplace":
                //
                FiltroBordas filtroLaplace = new FiltroBordas();
                filtroWindow = new int[, ] {
                    { 0, 1, 0 }, { 1, -4, 1 }, { 0, 1, 0 }
                };
                pictureBoxResultado.Image = filtroLaplace.LaPlace(Image, filtroWindow);
                break;

            case "Laplace Original":
                //
                FiltroBordas filtroLaplaceOri = new FiltroBordas();
                filtroWindow = new int[, ] {
                    { -1, -1, -1 }, { -1, 9, -1 }, { -1, -1, -1 }
                };
                pictureBoxResultado.Image = filtroLaplaceOri.LaPlace(Image, filtroWindow);
                break;

            case "Cannys":
                //
                FiltroBordas filtroCannys = new FiltroBordas();
                pictureBoxResultado.Image = filtroCannys.Cannys(Image, 0);
                break;

            case "Cannys Inverso":
                //
                FiltroBordas filtroCannysInv = new FiltroBordas();
                pictureBoxResultado.Image = filtroCannysInv.Cannys(Image, 1);
                break;

            case "Cinza: HSI":
                //
                FiltroCinza filtroCHSI = new FiltroCinza();
                pictureBoxResultado.Image = filtroCHSI.HSI(Image);
                break;

            case "Cinza: HSL":
                //
                FiltroCinza filtroCHSL = new FiltroCinza();
                pictureBoxResultado.Image = filtroCHSL.HSL(Image);
                break;

            case "Cinza: HSV":
                //
                FiltroCinza filtroCHSV = new FiltroCinza();
                pictureBoxResultado.Image = filtroCHSV.HSV(Image);
                break;

            case "Cinza: NTSC/PAL":
                //
                FiltroCinza filtroCNTSC = new FiltroCinza();
                pictureBoxResultado.Image = filtroCNTSC.NTSCePAL(Image);
                break;

            case "Substituição Uniforme: HSI":
                //
                FiltroSubstituicaoUniforme filtroSubHSI = new FiltroSubstituicaoUniforme();
                pictureBoxResultado.Image = filtroSubHSI.HSI(Image);
                break;

            case "Substituição Uniforme: HSL":
                //
                FiltroSubstituicaoUniforme filtroSubHSL = new FiltroSubstituicaoUniforme();
                pictureBoxResultado.Image = filtroSubHSL.HSL(Image);
                break;

            case "Substituição Uniforme: HSV":
                //
                FiltroSubstituicaoUniforme filtroSubHSV = new FiltroSubstituicaoUniforme();
                pictureBoxResultado.Image = filtroSubHSV.HSV(Image);
                break;

            case "Substituição Uniforme: NTSC/PAL":
                //
                FiltroSubstituicaoUniforme filtroSubNTSC = new FiltroSubstituicaoUniforme();
                pictureBoxResultado.Image = filtroSubNTSC.NTSCePal(Image);
                break;

            case "Populosidade: HSI":
                //
                FiltroPopulosidade filtroPopHSI = new FiltroPopulosidade();
                pictureBoxResultado.Image = filtroPopHSI.HSI(Image);
                break;

            case "Populosidade: HSL":
                //
                FiltroPopulosidade filtroPopHSL = new FiltroPopulosidade();
                pictureBoxResultado.Image = filtroPopHSL.HSL(Image);
                break;

            case "Populosidade: HSV":
                //
                FiltroPopulosidade filtroPopHSV = new FiltroPopulosidade();
                pictureBoxResultado.Image = filtroPopHSV.HSV(Image);
                break;

            case "Populosidade: NTSC/PAL":
                //
                FiltroPopulosidade filtroPopNTSC = new FiltroPopulosidade();
                pictureBoxResultado.Image = filtroPopNTSC.NTSCePAL(Image);
                break;

            case "Corte Mediano: HSI":
                //
                FiltroCorteMediano filtroCMHSI = new FiltroCorteMediano();
                pictureBoxResultado.Image = filtroCMHSI.HSI(Image);
                break;

            case "Corte Mediano: HSL":
                //
                FiltroCorteMediano filtroCMHSL = new FiltroCorteMediano();
                pictureBoxResultado.Image = filtroCMHSL.HSL(Image);
                break;

            case "Corte Mediano: HSV":
                //
                FiltroCorteMediano filtroCMHSV = new FiltroCorteMediano();
                pictureBoxResultado.Image = filtroCMHSV.HSV(Image);
                break;

            case "Corte Mediano: NTSC/PAL":
                //
                FiltroCorteMediano filtroCMNTSC = new FiltroCorteMediano();
                pictureBoxResultado.Image = filtroCMNTSC.NTSCePAL(Image);
                break;

            case "Negativo":
                //
                FiltroNegativo filtroNegativoColor = new FiltroNegativo();
                pictureBoxResultado.Image = filtroNegativoColor.Negativo(Image, 1);
                break;

            case "Negativo Cinza":
                //
                FiltroNegativo filtroNegativo = new FiltroNegativo();
                pictureBoxResultado.Image = filtroNegativo.Negativo(Image, 0);
                break;
            }
        }