private void BitToolStripMenuItem6_Click(object sender, EventArgs e) { Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); b = OlahCitra.imageDepth(b, 7, progressBar1); pbOutput.Image = b; }
private void average5x5ToolStripMenuItem_Click(object sender, EventArgs e) { int[,] kernel = { { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); pbOutput.Image = OlahCitra.filter(kernel, b, 25, progressBar1, 2); }
private void erotionToolStripMenuItem1_Click(object sender, EventArgs e) { int[,] kernel = { { 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1 }, { 1, 1, 1, 1, 1, 1 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); pbOutput.Image = OlahCitra.gsErotion(kernel, b, progressBar1); }
private void LuminousityToolStripMenuItem_Click(object sender, EventArgs e) { Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); b = OlahCitra.grayscaleLuminance(b, progressBar1); pbOutput.Image = b; }
private void AverageToolStripMenuItem1_Click(object sender, EventArgs e) { Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); b = OlahCitra.grayscaleAverage(b, progressBar1); pbOutput.Image = b; }
private void ContrastToolStripMenuItem_Click(object sender, EventArgs e) { Bitmap copy = new Bitmap((Bitmap)this.pbInput.Image); FrmBrightness fb = new FrmBrightness(); OlahCitra.keBrightness(copy, fb.getBrightness()); this.pbOutput.Image = copy; }
private void openingToolStripMenuItem_Click(object sender, EventArgs e) { int[,] kernelDilation = { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } }; int[,] kernelErotion = { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); pbOutput.Image = OlahCitra.opening(kernelDilation, kernelErotion, b, progressBar1); }
private void floydSteinbergToolStripMenuItem_Click(object sender, EventArgs e) { int[,] palletteColor = new int[, ] { { 0, 0, 0 }, { 255, 0, 0, }, { 0, 255, 0 }, { 0, 0, 255 }, { 255, 255, 0 }, { 0, 255, 255 }, { 255, 0, 255 }, { 255, 255, 255 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int merah, hijau, biru; int errorR, errorG, errorB; int[] warnaTerdekat; int[] errorColor = new int[3]; progressBar1.Visible = true; for (int i = 1; i <= b.Width - 2; i++) { for (int j = 0; j <= b.Height - 2; j++) { merah = b.GetPixel(i, j).R; hijau = b.GetPixel(i, j).G; biru = b.GetPixel(i, j).B; warnaTerdekat = OlahCitra.warnaTerdekat(merah, hijau, biru); errorR = merah - warnaTerdekat[0]; errorG = hijau - warnaTerdekat[1]; errorB = biru - warnaTerdekat[2]; errorColor[0] = OlahCitra.truncate(errorR); errorColor[1] = OlahCitra.truncate(errorG); errorColor[2] = OlahCitra.truncate(errorB); //hitung pixel koordinat i+1, j merah = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j).R + (7.0 / 16.0) * errorColor[0])); hijau = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j).G + (7.0 / 16.0) * errorColor[1])); biru = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j).B + (7.0 / 16.0) * errorColor[2])); b.SetPixel(i + 1, j, Color.FromArgb(merah, hijau, biru)); //hitung pixel koordinat i-1, j+1 merah = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i - 1, j + 1).R + (3.0 / 16.0) * errorColor[0])); hijau = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i - 1, j + 1).G + (3.0 / 16.0) * errorColor[1])); biru = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i - 1, j + 1).B + (3.0 / 16.0) * errorColor[2])); b.SetPixel(i - 1, j + 1, Color.FromArgb(merah, hijau, biru)); //hitung pixel koordinat i, j+1 merah = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i, j + 1).R + (5.0 / 16.0) * errorColor[0])); hijau = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i, j + 1).G + (5.0 / 16.0) * errorColor[1])); biru = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i, j + 1).B + (5.0 / 16.0) * errorColor[2])); b.SetPixel(i, j + 1, Color.FromArgb(merah, hijau, biru)); //hitung pixel koordinat i+1, j+1 merah = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j + 1).R + (1.0 / 16.0) * errorColor[0])); hijau = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j + 1).G + (1.0 / 16.0) * errorColor[1])); biru = OlahCitra.truncate(Convert.ToInt32(b.GetPixel(i + 1, j + 1).B + (1.0 / 16.0) * errorColor[2])); b.SetPixel(i + 1, j + 1, Color.FromArgb(merah, hijau, biru)); } progressBar1.Value = Convert.ToInt16(100 * (i + 1) / b.Width); } pbOutput.Image = b; progressBar1.Visible = false; }
private void gaussianBlurToolStripMenuItem_Click(object sender, EventArgs e) { int[,] kernel = { { 1, 2, 1 }, { 2, 4, 2 }, { 1, 2, 1 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int divider = 16; int startFromCoordinate = 1; pbOutput.Image = OlahCitra.filter(kernel, b, divider, progressBar1, startFromCoordinate); }
private void sharpenToolStripMenuItem_Click(object sender, EventArgs e) { int[,] kernel = { { 0, -1, 0 }, { -1, 5, -1 }, { 0, -1, 0 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int divider = 1; int startFromCoordinate = 1; pbOutput.Image = OlahCitra.filter(kernel, b, divider, progressBar1, startFromCoordinate); }
private void unsharpMasking5x5ToolStripMenuItem_Click(object sender, EventArgs e) { int[,] kernel = { { 1, 4, 6, 4, 1 }, { 4, 16, 24, 16, 4 }, { 6, 24, -476, 24, 6 }, { 4, 16, 24, 16, 4 }, { 1, 4, 6, 4, 1 } }; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int divider = -256; int startFromCoordinate = 2; pbOutput.Image = OlahCitra.filter(kernel, b, divider, progressBar1, startFromCoordinate); }
private void LogBrightnessToolStripMenuItem_Click(object sender, EventArgs e) { FrmLogBrightness flb = new FrmLogBrightness(); flb.ShowDialog(); Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int nilaiBrightness = Convert.ToInt32(flb.hScrlBrightness.Value.ToString()); b = OlahCitra.keLogBrightness(b, nilaiBrightness, progressBar1); pbOutput.Image = b; }
private void GammaToolStripMenuItem_Click(object sender, EventArgs e) { FrmGamma fg = new FrmGamma(); fg.ShowDialog(); Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); int nilaiGamma = Convert.ToInt32(fg.hScrlGamma.Value.ToString()); b = OlahCitra.keGammaCorrection(b, nilaiGamma, progressBar1); pbOutput.Image = b; }
private void BrightnessContrastToolStripMenuItem_Click(object sender, EventArgs e) { if (pbInput.Image == null) { MessageBox.Show("Citra belum ada!"); } else { Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); FrmBrightness fb = new FrmBrightness(); fb.ShowDialog(); // FYI: koding dibawah dijalankan setelah form Brightness ditutup. int nilaiBrightness = Convert.ToInt32(fb.tbBrightness.Text); int nilaiContrast = Convert.ToInt32(fb.tbContrast.Text); b = OlahCitra.keBrightness(b, nilaiBrightness); pbOutput.Image = OlahCitra.keContrast(b, nilaiContrast); } }
private void averageDenoisingToolStripMenuItem_Click(object sender, EventArgs e) { FolderBrowserDialog folderDlg = new FolderBrowserDialog(); folderDlg.ShowNewFolderButton = true; if (folderDlg.ShowDialog() == DialogResult.OK) { Environment.SpecialFolder root = folderDlg.RootFolder; } List <Image> pictureList = new List <Image>(); foreach (string item in Directory.GetFiles(folderDlg.SelectedPath, "*.jpg", SearchOption.AllDirectories)) { Image _image = Image.FromFile(item); pictureList.Add(_image); } pbInput.Image = pictureList[0]; pbOutput.Image = OlahCitra.noiseReducer(pictureList, progressBar1); }
private void nearest8ColorsToolStripMenuItem_Click(object sender, EventArgs e) { int [] baru; Bitmap b = new Bitmap((Bitmap)this.pbInput.Image); this.pbOutput.Image = b; progressBar1.Visible = true; for (int i = 0; i < b.Width; i++) { for (int j = 0; j < b.Height; j++) { Color c1 = b.GetPixel(i, j); baru = OlahCitra.warnaTerdekat(c1.R, c1.G, c1.B); b.SetPixel(i, j, Color.FromArgb(baru[0], baru[1], baru[2])); } progressBar1.Value = Convert.ToInt16(100 * (i + 1) / b.Width); } progressBar1.Visible = false; this.pbOutput.Image = b; }
private void InversToolStripMenuItem_Click(object sender, EventArgs e) { Bitmap b = new Bitmap((Bitmap)pbInput.Image); pbOutput.Image = OlahCitra.keInvers(b); }