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