private void GetSkelet() { int[,] bit = new int[ibOriginal.Image.Bitmap.Height, ibOriginal.Image.Bitmap.Width]; for (int i = 0; i < ibOriginal.Image.Bitmap.Height; i++) { for (int j = 0; j < ibOriginal.Image.Bitmap.Width; j++) { if (ibOriginal.Image.Bitmap.GetPixel(j, i).ToArgb() == -1) { bit[i, j] = 1; } else { bit[i, j] = 0; } } } Bitmap bm = new Bitmap(ibOriginal.Image.Bitmap.Width, ibOriginal.Image.Bitmap.Height); Skeletonizator s = new Skeletonizator(bit); int[,] sk = new int[ibOriginal.Image.Bitmap.Height, ibOriginal.Image.Bitmap.Width]; sk = s.SkeletonZhangSuen(); for (int i = 0; i < ibOriginal.Image.Bitmap.Height; i++) { for (int j = 0; j < ibOriginal.Image.Bitmap.Width; j++) { if (sk[i, j] == 1) { bm.SetPixel(j, i, Color.Red); } else { bm.SetPixel(j, i, Color.White); } } } ibProcessed.Image = new Image <Bgr, byte>(bm); toolStripStatusLabel1.Text = "Скелет изображения построен."; }
private void GetSkelet() { int[,] bit = new int[ibOriginal.Image.Bitmap.Height, ibOriginal.Image.Bitmap.Width]; for (int i = 0; i < ibOriginal.Image.Bitmap.Height; i++) for (int j = 0; j < ibOriginal.Image.Bitmap.Width; j++) { if (ibOriginal.Image.Bitmap.GetPixel(j, i).ToArgb() == -1) bit[i, j] = 1; else bit[i, j] = 0; } Bitmap bm = new Bitmap(ibOriginal.Image.Bitmap.Width, ibOriginal.Image.Bitmap.Height); Skeletonizator s = new Skeletonizator(bit); int[,] sk = new int[ibOriginal.Image.Bitmap.Height, ibOriginal.Image.Bitmap.Width]; sk = s.SkeletonZhangSuen(); for (int i = 0; i < ibOriginal.Image.Bitmap.Height; i++) for (int j = 0; j < ibOriginal.Image.Bitmap.Width; j++) { if (sk[i, j] == 1) bm.SetPixel(j, i, Color.Red); else bm.SetPixel(j, i, Color.White); } ibProcessed.Image = new Image<Bgr, byte>(bm); toolStripStatusLabel1.Text = "Скелет изображения построен."; }