public Bitmap MinMax(Bitmap Imagem, int opcao) { // Opção => = 0 Minimo ; != 0 Maximo Largura = Imagem.Width; Altura = Imagem.Height; int i, j; int[] vetor = new int[9]; Bitmap NovaImagem = new Bitmap(Largura, Altura); for (i = 1; i < Largura - 1; i++) { for (j = 1; j < Altura - 1; j++) { todosPixeisR[0] = Imagem.GetPixel(i - 1, j - 1).R; todosPixeisR[1] = Imagem.GetPixel(i - 1, j).R; todosPixeisR[2] = Imagem.GetPixel(i - 1, j + 1).R; todosPixeisR[3] = Imagem.GetPixel(i, j - 1).R; todosPixeisR[4] = Imagem.GetPixel(i, j).R; todosPixeisR[5] = Imagem.GetPixel(i, j + 1).R; todosPixeisR[6] = Imagem.GetPixel(i + 1, j - 1).R; todosPixeisR[7] = Imagem.GetPixel(i + 1, j).R; todosPixeisR[8] = Imagem.GetPixel(i + 1, j + 1).R; vetor = Ordenacao.quickSort(todosPixeisR); todosPixeisG[0] = Imagem.GetPixel(i - 1, j - 1).G; todosPixeisG[1] = Imagem.GetPixel(i - 1, j).G; todosPixeisG[2] = Imagem.GetPixel(i - 1, j + 1).G; todosPixeisG[3] = Imagem.GetPixel(i, j - 1).G; todosPixeisG[4] = Imagem.GetPixel(i, j).G; todosPixeisG[5] = Imagem.GetPixel(i, j + 1).G; todosPixeisG[6] = Imagem.GetPixel(i + 1, j - 1).G; todosPixeisG[7] = Imagem.GetPixel(i + 1, j).G; todosPixeisG[8] = Imagem.GetPixel(i + 1, j + 1).G; vetor = Ordenacao.quickSort(todosPixeisG); todosPixeisB[0] = Imagem.GetPixel(i - 1, j - 1).B; todosPixeisB[1] = Imagem.GetPixel(i - 1, j).B; todosPixeisB[2] = Imagem.GetPixel(i - 1, j + 1).B; todosPixeisB[3] = Imagem.GetPixel(i, j - 1).B; todosPixeisB[4] = Imagem.GetPixel(i, j).B; todosPixeisB[5] = Imagem.GetPixel(i, j + 1).B; todosPixeisB[6] = Imagem.GetPixel(i + 1, j - 1).B; todosPixeisB[7] = Imagem.GetPixel(i + 1, j).B; todosPixeisB[8] = Imagem.GetPixel(i + 1, j + 1).B; vetor = Ordenacao.quickSort(todosPixeisB); todosPixeisA[0] = Imagem.GetPixel(i - 1, j - 1).A; todosPixeisA[1] = Imagem.GetPixel(i - 1, j).A; todosPixeisA[2] = Imagem.GetPixel(i - 1, j + 1).A; todosPixeisA[3] = Imagem.GetPixel(i, j - 1).A; todosPixeisA[4] = Imagem.GetPixel(i, j).A; todosPixeisA[5] = Imagem.GetPixel(i, j + 1).A; todosPixeisA[6] = Imagem.GetPixel(i + 1, j - 1).A; todosPixeisA[7] = Imagem.GetPixel(i + 1, j).A; todosPixeisA[8] = Imagem.GetPixel(i + 1, j + 1).A; vetor = Ordenacao.quickSort(todosPixeisA); if (opcao == 0) // Mínimo { pixelR = todosPixeisR[0]; pixelG = todosPixeisG[0]; pixelB = todosPixeisB[0]; pixelA = todosPixeisA[0]; } else // Máximo { pixelR = todosPixeisR[8]; pixelG = todosPixeisG[8]; pixelB = todosPixeisB[8]; pixelA = todosPixeisA[8]; } NovaImagem.SetPixel(i, j, Color.FromArgb(pixelA, pixelR, pixelG, pixelB)); } } return(NovaImagem); }
public Bitmap Moda(Bitmap Imagem) { Largura = Imagem.Width; Altura = Imagem.Height; int i, j; int[] vetor = new int[9]; int[] moda = new int[9]; int valor = 0; Bitmap NovaImagem = new Bitmap(Largura, Altura); for (i = 1; i < Largura - 1; i++) { for (j = 1; j < Altura - 1; j++) { todosPixeisR[0] = Imagem.GetPixel(i - 1, j - 1).R; todosPixeisR[1] = Imagem.GetPixel(i - 1, j).R; todosPixeisR[2] = Imagem.GetPixel(i - 1, j + 1).R; todosPixeisR[3] = Imagem.GetPixel(i, j - 1).R; todosPixeisR[4] = Imagem.GetPixel(i, j).R; todosPixeisR[5] = Imagem.GetPixel(i, j + 1).R; todosPixeisR[6] = Imagem.GetPixel(i + 1, j - 1).R; todosPixeisR[7] = Imagem.GetPixel(i + 1, j).R; todosPixeisR[8] = Imagem.GetPixel(i + 1, j + 1).R; vetor = Ordenacao.quickSort(todosPixeisR); moda = CalcularModa(todosPixeisR, valor); pixelR = todosPixeisR[valor]; todosPixeisG[0] = Imagem.GetPixel(i - 1, j - 1).G; todosPixeisG[1] = Imagem.GetPixel(i - 1, j).G; todosPixeisG[2] = Imagem.GetPixel(i - 1, j + 1).G; todosPixeisG[3] = Imagem.GetPixel(i, j - 1).G; todosPixeisG[4] = Imagem.GetPixel(i, j).G; todosPixeisG[5] = Imagem.GetPixel(i, j + 1).G; todosPixeisG[6] = Imagem.GetPixel(i + 1, j - 1).G; todosPixeisG[7] = Imagem.GetPixel(i + 1, j).G; todosPixeisG[8] = Imagem.GetPixel(i + 1, j + 1).G; vetor = Ordenacao.quickSort(todosPixeisG); moda = CalcularModa(todosPixeisG, valor); pixelG = todosPixeisG[valor]; todosPixeisB[0] = Imagem.GetPixel(i - 1, j - 1).B; todosPixeisB[1] = Imagem.GetPixel(i - 1, j).B; todosPixeisB[2] = Imagem.GetPixel(i - 1, j + 1).B; todosPixeisB[3] = Imagem.GetPixel(i, j - 1).B; todosPixeisB[4] = Imagem.GetPixel(i, j).B; todosPixeisB[5] = Imagem.GetPixel(i, j + 1).B; todosPixeisB[6] = Imagem.GetPixel(i + 1, j - 1).B; todosPixeisB[7] = Imagem.GetPixel(i + 1, j).B; todosPixeisB[8] = Imagem.GetPixel(i + 1, j + 1).B; vetor = Ordenacao.quickSort(todosPixeisB); moda = CalcularModa(todosPixeisB, valor); pixelB = todosPixeisB[valor]; todosPixeisA[0] = Imagem.GetPixel(i - 1, j - 1).A; todosPixeisA[1] = Imagem.GetPixel(i - 1, j).A; todosPixeisA[2] = Imagem.GetPixel(i - 1, j + 1).A; todosPixeisA[3] = Imagem.GetPixel(i, j - 1).A; todosPixeisA[4] = Imagem.GetPixel(i, j).A; todosPixeisA[5] = Imagem.GetPixel(i, j + 1).A; todosPixeisA[6] = Imagem.GetPixel(i + 1, j - 1).A; todosPixeisA[7] = Imagem.GetPixel(i + 1, j).A; todosPixeisA[8] = Imagem.GetPixel(i + 1, j + 1).A; vetor = Ordenacao.quickSort(todosPixeisA); moda = CalcularModa(todosPixeisA, valor); pixelA = todosPixeisG[valor]; NovaImagem.SetPixel(i, j, Color.FromArgb(pixelA, pixelR, pixelG, pixelB)); } } return(NovaImagem); }