Addd.R; } Clear; continue;ulangi level A Clear; batas = kernelsize2; Sort; int imedian = Count2; Clear; batas = kernelsize2; Clear; continue;

sourceImage.Width: Math.Absx1;ini pengkondisian di mana jendela filter tidak melewati batas dari ukuran image x2 = Math.Absx2 = sourceImage.Height ? sourceImage.Height-2-Math.Absx2 - sourceImage.Height : Math.Absx2; d = asli.GetPixelx1, x2;

r.Addd.R; }

} r.Sort;pengurutan int imedian = r.Count2;indeks median int a1 = r[imedian] - r[0];Level A -- Zmed - Zmin int a2 = r[imedian] - r[r.Count-1]; Zmed - Zmax if a1 0 a2 0 Jika memenuhi ke level B { int b1 = asli.GetPixeli, j.R - r[0];Level B -- Zxy - Zmin int b2 = asli.GetPixeli, j.R - r[r.Count-1]; Zxy - Zmax if b1 0 b2 0 nilai.Addasli.GetPixeli, j.R;ou tput Zxy else nilai.Addr[imedian];output Zmed r.Clear; batas = kernelsize2; break; } else if batas kernelsize2 + 2jika tidak memenuhi persyaratan, ke level B { batas += 1;menambah batas jendela filter menjadi 5

r.Clear; continue;ulangi level A

} else { nilai.Addasli.GetPixeli, j.R; ditampung nilai hasilnya

r.Clear; batas = kernelsize2;

break; } } } outr.Addnilai; } return outr; Universitas Sumatera Utara } ListListint greenImage sourceImage, int kernelsize { Bitmap asli = BitmapsourceImage; int batas = kernelsize2; Listint r = new Listint; ListListint outr = new ListListint; Color d; for int i = 0;i sourceImage.Width;i++{ Listint nilai = new Listint; for int j = 0;jsourceImage.Height;j++{ whiletrue{ for int x = -batas;x = batas;x++{ for int y = -batas;y = batas;y++{ int x1 = i+x; int x2 = y+j; x1 = Math.Absx1 = sourceImage.Width ? sourceImage.Width-2-Math.Absx1 - sourceImage.Width: Math.Absx1; x2 = Math.Absx2 = sourceImage.Height ? sourceImage.Height-2-Math.Absx2 - sourceImage.Height : Math.Absx2; d = asli.GetPixelx1, x2; r.Addd.G; } } r.Sort; int imedian = r.Count2; int a1 = r[imedian] - r[0]; int a2 = r[imedian] - r[r.Count-1]; if a1 0 a2 0{ int b1 = asli.GetPixeli, j.G - r[0]; int b2 = asli.GetPixeli, j.G - r[r.Count-1]; if b1 0 b2 0 nilai.Addasli.GetPixeli, j.G; else nilai.Addr[imedian];

r.Clear; batas = kernelsize2;

break; } else if batas kernelsize2 + 2{ batas += 1;

r.Clear; continue;

} else{ Universitas Sumatera Utara nilai.Addasli.GetPixeli, j.G; r.Clear; batas = kernelsize2; break; } } } outr.Addnilai; nilai.Clear; } return outr; } ListListint blueImage sourceImage, int kernelsize { Bitmap asli = BitmapsourceImage; int batas = kernelsize2; Listint r = new Listint; ListListint outr = new ListListint; Color d; for int i = 0;i sourceImage.Width;i++{ Listint nilai = new Listint; for int j = 0;jsourceImage.Height;j++{ whiletrue{ for int x = -batas;x = batas;x++{ for int y = -batas;y = batas;y++{ int x1 = i+x; int x2 = y+j; x1 = Math.Absx1 = sourceImage.Width ? sourceImage.Width-2-Math.Absx1 - sourceImage.Width: Math.Absx1; x2 = Math.Absx2 = sourceImage.Height ? sourceImage.Height-2-Math.Absx2 - sourceImage.Height : Math.Absx2; d = asli.GetPixelx1, x2;

r.Addd.B; }