# Plugin für ImageJ programmieren



## Ellison (29. Okt 2015)

Hallo hat jemand Erfahrung mit Plugins für ImageJ?
Ich muss eine Punktoperation programmieren, das später auf ein Graustufenbild(8Bit Bild) angewendet wird.

// Benoetigte Klassen werden importiert
import ij.*;
import ij.plugin.filter.PlugInFilter;
import ij.process.*;
import java.awt.*;
import ij.gui.*;

                        // Um Bildpunkte lesen und schreiben zu
                        // koennen muss das Plugin PlugInFilter
                        // implementieren.

public class Praktikumeins implements PlugInFilter {
                        // Die Methode setup wird zu Beginn
                        // aufgerufen, um die Anwendbarkeit
                        // des Plugins auf das jeweils
                        // ausgewaehlte Bild zu ueberpruefen.
 public int setup(String arg, ImagePlus imp) {
                        // Bei Uebergabe von "about" wird der
                        // Text in Methode showAbout ausgegeben
                        // und die Methode run nicht aufgerufen.
  if (arg.equals("about")) {showAbout(); return DONE;}
                        // dieses Plugins ist nur auf 8 Bit
                        // Graustufenbilder anwendbar, daher:
  return DOES_8G;
 }
                        // Die Methode run verarbeitet
                        // das ausgewaehlte Bild.
 public void run(ImageProcessor ip) {
                        // Bildpixel kopieren
  //byte[] pixels = (byte[])ip.getPixels();
                        // Bildbreite laden
  int width = ip.getWidth();
                        // Angaben zum Bildbereich (ROI) laden.
  Rectangle r = ip.getRoi();
  //int pixelindex;
  int wert;
  int Eingabewert =1;
  GenericDialog gd = new GenericDialog("Was wird eingegeben?");
  gd.addNumericField("Eingabe 0...127:", Eingabewert,0 ,3,"");
  gd.showDialog();
  if(gd.wasCanceled())return;
  Eingabewert = (int)gd.getNextNumber();
                        // Schleifen ueber alle Bildpunkte des ROI
  int x1 = 127 - Eingabewert ;
  int y1 = 127 + Eingabewert;
  for (int y=r.y; y<(r.y+r.height); y++) {

      if (y<=127){
          wert=(y1/x1)*x1;}

          else{ 

          wert=((255 - y1)/(255-x1))* (x1-(255-x1))+(y1);
          }

   for (int x=r.x; x<(r.x+r.width); x++) {


        if (y<=127){
          wert=(y1/x1)*x1;}

          else{ 

          wert=((255 - y1)/(255-x1))* (x1-(255-x1))+(y1);
          }


    }

   }
  }
}


das ist was ist bisher geschrieben habe, aber es funktioniert leider nicht


----------

