Squiz Matrix  4.12.2
 All Data Structures Namespaces Functions Variables Pages
Benchmark.java
1 package ij.plugin.filter;
2 import java.awt.*;
3 import ij.*;
4 import ij.process.*;
5 import ij.gui.*;
6 import ij.text.*;
10 public class Benchmark implements PlugInFilter{
11 
12  String arg;
13  ImagePlus imp;
14  boolean showUpdates= true;
15  int counter;
16 
17  public int setup(String arg, ImagePlus imp) {
18  this.imp = imp;
19  return DOES_ALL+NO_CHANGES;
20  }
21 
22  public void run(ImageProcessor ip) {
23  Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
24  ip.setInterpolate(false);
25  for (int i=0; i <4; i++) {
26  ip.invert();
27  updateScreen(imp);
28  }
29  for (int i=0; i <4; i++) {
30  ip.flipVertical();
31  updateScreen(imp);
32  }
33  ip.flipHorizontal(); updateScreen(imp);
34  ip.flipHorizontal(); updateScreen(imp);
35  for (int i=0; i <6; i++) {
36  ip.smooth();
37  updateScreen(imp);
38  }
39  ip.reset();
40  for (int i=0; i <6; i++) {
41  ip.sharpen();
42  updateScreen(imp);
43  }
44  ip.reset();
45  ip.smooth(); updateScreen(imp);
46  ip.findEdges(); updateScreen(imp);
47  ip.invert(); updateScreen(imp);
48  ip.autoThreshold(); updateScreen(imp);
49  ip.reset();
50  ip.medianFilter(); updateScreen(imp);
51  for (int i=0; i <360; i +=15) {
52  ip.reset();
53  ip.rotate(i);
54  updateScreen(imp);
55  }
56  double scale = 1.5;
57  for (int i=0; i <8; i++) {
58  ip.reset();
59  ip.scale(scale, scale);
60  updateScreen(imp);
61  scale = scale*1.5;
62  }
63  for (int i=0; i <12; i++) {
64  ip.reset();
65  scale = scale/1.5;
66  ip.scale(scale, scale);
67  updateScreen(imp);
68  }
69  ip.reset();
70  updateScreen(imp);
71  }
72 
73  void updateScreen(ImagePlus imp) {
74  if (showUpdates)
75  imp.updateAndDraw();
76  IJ.showStatus((counter++) + "/"+72);
77  }
78 
79  /*
80  void showBenchmarkResults() {
81  TextWindow tw = new TextWindow("ImageJ Benchmark", "", 450, 450);
82  tw.setFont(new Font("Monospaced", Font.PLAIN, 12));
83  tw.append("Time in seconds needed to perform 62 image processing");
84  tw.append("operations on the 512x512 \"Mandrill\" image");
85  tw.append("---------------------------------------------------------");
86  tw.append(" 1.6 Pentium 4/3.0, WinXP Java 1.3.1");
87  tw.append(" 2.4 PPC G5/2.0x2, MacOSX Java 1.3.1");
88  tw.append(" 3.3 Pentium 4/1.4, Win2K IE 5.0");
89  tw.append(" 5.3 Pentium 3/750, Win98 IE 5.0");
90  tw.append(" 5.6 Pentium 4/1.4, Win2K JDK 1.3");
91  tw.append(" 6.0 Pentium 3/750, Win98 Netscape 4.7");
92  tw.append(" 8.6 PPC G4/400, MacOS MRJ 2.2");
93  tw.append(" 11 Pentium 2/400, Win95 JRE 1.1.8");
94  tw.append(" 14 PPC G3/300, MacOS MRJ 2.1");
95  tw.append(" 38 PPC 604/132, MacOS MRJ 2.1");
96  tw.append(" 89 Pentium/100, Win95 JRE 1.1.6");
97  tw.append(" 96 Pentium/400, Linux Sun JDK 1.2.2 (17 with JIT)");
98  tw.append("");
99  }
100  */
101 
102 }
103 
104