private void btnContrastGraph_Click(object sender, EventArgs e)
        {
            if (OriginalImageMatrix != null)
            {
                int OriginalWidth = int.Parse(txtWidth.Text);
                int OriginalHeight = int.Parse(txtHeight.Text);
                int ContrastDegree = int.Parse(contrastTextBox.Text);

            ZGraphForm ZGF = new ZGraphForm("Contrast Time Execution Graph", "Window Size", "Time (ms)");

                if (textBox_MaxWindowSize.Text != "")
                {
                    int maxWindowSize = int.Parse(textBox_MaxWindowSize.Text);

                    // Make up some data points from contrast image
                    double[] x_values = new double[maxWindowSize+1];
                    double[] y_values_Normal = new double[maxWindowSize+1];
                    double[] y_values_Efficient = new double[maxWindowSize+1];

                    for (int i = 1; i <= maxWindowSize; i++)
                    {
                        x_values[i] = i;

                        MyColor[,] ResizedImage = ImageOperations.NormalResize(OriginalImageMatrix, OriginalWidth*i, OriginalHeight*i);

                        ImageOperations.ContrastImage_Normal(ResizedImage, ContrastDegree);
                        double NormalTime = ImageOperations.elapsedMs;
                        y_values_Normal[i] = NormalTime;

                        ImageOperations.ContrastImage_Efficient(ResizedImage, ContrastDegree);
                        double EfficientTime = ImageOperations.elapsedMs;
                        y_values_Efficient[i] = EfficientTime;
                    }

                    //Create a graph and add two curves to it
                    ZGF.add_curve("MinMax Normal Algorithm", x_values, y_values_Normal, Color.Red);
                    ZGF.add_curve("MinMax Efficient Algorithm", x_values, y_values_Efficient, Color.Blue);
                    ZGF.Show();
                }
            }
        }
        private void btnBlurGraph_Click(object sender, EventArgs e)
        {
            double[] xAxis = { 3, 5, 7, 9, 11, 13, 15, 17 };
            double[] yAxisBlurEfficient = new double[8];
            double[] yAxisBlurNotEfficient = new double[8];

            ZGraphForm graph = new ZGraphForm("Efficient and Non-Efficient Blur Algorithms", "Blur Mask Size", "Execution Time");

            for (int i = 0; i < xAxis.Length; i++)
            {
                MyColor[,] blurredImage = ImageOperations.BlurImage_Efficient(OriginalImageMatrix, (int)xAxis[i]);
                yAxisBlurEfficient[i] = ImageOperations.elapsedMs;
            }
            for (int i = 0; i < xAxis.Length; i++)
            {
                MyColor[,] blurredImage = ImageOperations.BlurImage_Normal(OriginalImageMatrix, (int)xAxis[i]);
                yAxisBlurNotEfficient[i] = ImageOperations.elapsedMs;
            }
            graph.add_curve("Non-Efficient Blur Algorithm", xAxis, yAxisBlurNotEfficient, Color.Red);
            graph.add_curve("Efficient Blur Algorithm", xAxis, yAxisBlurEfficient, Color.Green);
            graph.Show();
        }