private void doDrawing(Bar_Sta link) { statusLabel.Text = link.status; progressBar.Increment(link.val); strip.Items[2].Text = progressBar.Value + "%"; //progressBar.ProgressBar. /* if (progressBar.Value + link.val <= 100) * progressBar.Value += link.val; * else progressBar.Value = 100;*/ // progressBar.ProgressBar.Refresh(); // progressBar.ProgressBar.Update(); strip.Update(); strip.Refresh(); }
/// <summary> /// /// </summary> /// <param name="pic"></param> /// <param name="XpatM"></param> /// <param name="YpatN"></param> /// <param name="psay"></param> /// <param name="isColored"></param> public ImageOPER(UnsafeBitmap pic, int XpatM, int YpatN, double psay, bool?isColored, System.Windows.Forms.ToolStripStatusLabel statusLabel, System.Windows.Forms.ToolStripProgressBar progressBar, System.Windows.Forms.StatusStrip strip) { this.statusLabel = statusLabel; this.progressBar = progressBar; this.strip = strip; progressBar.Value = 0; //DrawingThread = new Thread(new ParameterizedThreadStart(doDrawing)); link = new Bar_Sta("Initializing", 0); //DrawingThread.Start(link); doDrawing(link); source = pic; source.LockBitmap(); if (isColored == null) { PixelData data; Random ra = new Random(); data = source.GetPixel(ra.Next(source.Width), ra.Next(source.Height)); if (data.red == data.green && data.red == data.blue) { imageType = GRAY; } else { imageType = COLORED; } } else if (isColored.Value) { imageType = COLORED; } else { imageType = GRAY; } M = XpatM; N = YpatN; this.psay = psay; //////////// W = new double[M][][][]; card = new double[M][]; for (int i = 0; i < M; i++) { W[i] = new double[N][][]; card[i] = new double[N]; for (int j = 0; j < N; j++) { W[i][j] = new double[source.Width][]; for (int x = 0; x < source.Width; x++) { W[i][j][x] = new double[source.Height]; } } } //////////// link.status = "Filling Qx and Qy"; link.val = 3; //DrawingThread = new Thread(new ParameterizedThreadStart(doDrawing)); //DrawingThread.Start(link); doDrawing(link); fillQ(); link.status = "Filling W [i,j,x,y] "; link.val = 7; //DrawingThread = new Thread(new ParameterizedThreadStart(doDrawing)); //DrawingThread.Start(link); doDrawing(link); fillW(); if (imageType == GRAY) { imageType = GRAY; ////// link.status = "Moving to E space"; link.val = 12; doDrawing(link); ////// transformTo_Espace(); ////// link.status = "Calculating the MEANS"; link.val = 8; doDrawing(link); ////// calculate_Means(); ////// link.status = "Calculating the VARIANCES"; link.val = 13; doDrawing(link); ////// calculate_Variances(); ////// link.status = "Calculating the LAMBDAs and TAWs"; link.val = 17; doDrawing(link); ////// calculate_Lambdas_Taws(); ////// link.status = "Computing the Enhanced Image"; link.val = 10; doDrawing(link); ////// } else { imageType = COLORED; link.status = "Moving to E space"; link.val = 12; doDrawing(link); transformTo_E_Colored_Space(); link.status = "Calculating the MEANS"; link.val = 8; doDrawing(link); calculate_Colored_Means(); link.status = "Calculating the VARIANCES"; link.val = 13; doDrawing(link); calculate_Colored_Variances(); link.status = "Calculating the LAMBDAs and TAWs"; link.val = 17; doDrawing(link); calculate_Lambdas_Taws(); link.status = "Computing the Enhanced Image"; link.val = 10; doDrawing(link); /* UnsafeBitmap temp; * temp = new UnsafeBitmap(source.Width, source.Height); * temp.LockBitmap(); * transformTo_EspaceR(); * calculate_Means(); * calculate_Variances(); * calculate_Lambdas_Taws(); * temp = getEnhancedColoredImageR(temp,0); * //// * transformTo_EspaceG(); * calculate_Means(); * calculate_Variances(); * calculate_Lambdas_Taws(); * temp = getEnhancedColoredImageR(temp, 1); * //// * transformTo_EspaceB(); * calculate_Means(); * calculate_Variances(); * calculate_Lambdas_Taws(); * temp = getEnhancedColoredImageR(temp, 2);*/ } }