public override string ToString() { return(string.Format("G:({0}, {1}, {2}) M:({3}, {4}, {5})", Gx.ToString(Format), Gy.ToString(Format), Gz.ToString(Format), Mx.ToString(Format), My.ToString(Format), Mz.ToString(Format))); }
public override Bitmap ProcessImage(Bitmap SourceImage, BackgroundWorker worker) { Bitmap ResultImage = new Bitmap(SourceImage.Width, SourceImage.Height); int R, G, B; int R_x, G_x, B_x; int R_y, G_y, B_y; SharrX filterX = new SharrX(); SharrY filterY = new SharrY(); Bitmap Gx, Gy; Gx = filterX.ProcessImage(SourceImage, worker); Gy = filterY.ProcessImage(SourceImage, worker); for (int i = 0; i < SourceImage.Width; i++) { worker.ReportProgress((int)((float)i / ResultImage.Width * 100)); if (worker.CancellationPending) { return(null); } for (int j = 0; j < SourceImage.Height; j++) { R_x = (int)Gx.GetPixel(i, j).R; G_x = (int)Gx.GetPixel(i, j).G; B_x = (int)Gx.GetPixel(i, j).B; R_y = (int)Gy.GetPixel(i, j).R; G_y = (int)Gy.GetPixel(i, j).G; B_y = (int)Gy.GetPixel(i, j).B; R = Clamp((int)Math.Sqrt(Math.Pow(R_x, 2) + Math.Pow(R_y, 2)), 0, 255); G = Clamp((int)Math.Sqrt(Math.Pow(G_x, 2) + Math.Pow(G_y, 2)), 0, 255); B = Clamp((int)Math.Sqrt(Math.Pow(B_x, 2) + Math.Pow(B_y, 2)), 0, 255); ResultImage.SetPixel(i, j, Color.FromArgb(R, G, B)); } } return(ResultImage); }
public override int GetHashCode() { return(Gx.GetHashCode() ^ Gy.GetHashCode() ^ Gz.GetHashCode() ^ Mx.GetHashCode() ^ My.GetHashCode() ^ Mz.GetHashCode()); }