(String arg)
| 53 | |
| 54 | |
| 55 | public void run(String arg) { |
| 56 | if (arg.equals("options")) { |
| 57 | showDialog(); |
| 58 | if (iDoFFT) |
| 59 | arg="fft"; |
| 60 | else |
| 61 | return; |
| 62 | } |
| 63 | if (imp==null) |
| 64 | imp = IJ.getImage(); |
| 65 | if (arg.equals("fft") && imp.isComposite()) { |
| 66 | if (!GUI.showCompositeAdvisory(imp,"FFT")) |
| 67 | return; |
| 68 | } |
| 69 | if (arg.equals("redisplay")) { |
| 70 | redisplayPowerSpectrum(); |
| 71 | return; |
| 72 | } |
| 73 | if (arg.equals("swap")) { |
| 74 | if (imp.getWidth()==imp.getHeight()) { |
| 75 | swapQuadrants(imp.getStack()); |
| 76 | imp.updateAndDraw(); |
| 77 | } else |
| 78 | IJ.error("Swap Quadrants","Image must be square"); |
| 79 | return; |
| 80 | } |
| 81 | if (arg.equals("inverse")) { |
| 82 | if (imp.getTitle().startsWith("FHT of")) { |
| 83 | doFHTInverseTransform(); |
| 84 | return; |
| 85 | } |
| 86 | if (imp.getStackSize()==2) { |
| 87 | doComplexInverseTransform(); |
| 88 | return; |
| 89 | } |
| 90 | } |
| 91 | ImageProcessor ip = imp.getProcessor(); |
| 92 | Object obj = imp.getProperty("FHT"); |
| 93 | FHT fht = (obj instanceof FHT)?(FHT)obj:null; |
| 94 | stackSize = imp.getStackSize(); |
| 95 | boolean inverse; |
| 96 | if (fht==null && arg.equals("inverse")) { |
| 97 | IJ.error("FFT", "Frequency domain image required"); |
| 98 | return; |
| 99 | } |
| 100 | if (fht!=null) { |
| 101 | inverse = true; |
| 102 | imp.deleteRoi(); |
| 103 | } else { |
| 104 | if (imp.getRoi()!=null) |
| 105 | ip = ip.crop(); |
| 106 | fht = newFHT(ip); |
| 107 | inverse = false; |
| 108 | } |
| 109 | if (inverse) |
| 110 | doInverseTransform(fht); |
| 111 | else { |
| 112 | fileName = imp.getTitle(); |
no test coverage detected