Example #1
0
 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)));
 }
Example #2
0
        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);
        }
Example #3
0
 public override int GetHashCode()
 {
     return(Gx.GetHashCode() ^ Gy.GetHashCode() ^ Gz.GetHashCode() ^
            Mx.GetHashCode() ^ My.GetHashCode() ^ Mz.GetHashCode());
 }