summaryrefslogtreecommitdiff
path: root/src/bjc/imgchain/pipeline
diff options
context:
space:
mode:
Diffstat (limited to 'src/bjc/imgchain/pipeline')
-rw-r--r--src/bjc/imgchain/pipeline/PipelinePicker.java15
-rw-r--r--src/bjc/imgchain/pipeline/stages/AbstractPipelineStage.java6
-rw-r--r--src/bjc/imgchain/pipeline/stages/AbstractPixelStage.java15
-rw-r--r--src/bjc/imgchain/pipeline/stages/GaussStage.java14
-rw-r--r--src/bjc/imgchain/pipeline/stages/GreyscaleStage.java10
-rw-r--r--src/bjc/imgchain/pipeline/stages/InverseColorStage.java13
-rw-r--r--src/bjc/imgchain/pipeline/stages/LoadStage.java8
-rw-r--r--src/bjc/imgchain/pipeline/stages/PipeStage.java8
-rw-r--r--src/bjc/imgchain/pipeline/stages/RecallStage.java8
-rw-r--r--src/bjc/imgchain/pipeline/stages/SaveStage.java9
-rw-r--r--src/bjc/imgchain/pipeline/stages/StagePicker.java12
-rw-r--r--src/bjc/imgchain/pipeline/stages/StashStage.java9
-rw-r--r--src/bjc/imgchain/pipeline/stages/SubMaskStage.java9
-rw-r--r--src/bjc/imgchain/pipeline/stages/ThresholdStage.java16
14 files changed, 146 insertions, 6 deletions
diff --git a/src/bjc/imgchain/pipeline/PipelinePicker.java b/src/bjc/imgchain/pipeline/PipelinePicker.java
index 3539beb..ec5b071 100644
--- a/src/bjc/imgchain/pipeline/PipelinePicker.java
+++ b/src/bjc/imgchain/pipeline/PipelinePicker.java
@@ -12,11 +12,22 @@ import javax.swing.JScrollPane;
import bjc.imgchain.ImgChain;
+/**
+ * GUI to pick a pipeline to apply.
+ * @author Ben Culkin
+ *
+ */
public class PipelinePicker extends JDialog {
private static final long serialVersionUID = 1L;
+ /**
+ * The name of the pipe to apply.
+ */
public String pipeName;
+ /**
+ * Create a new pipeline picker GUI.
+ */
public PipelinePicker() {
super();
@@ -30,8 +41,8 @@ public class PipelinePicker extends JDialog {
setLayout(new BorderLayout());
DefaultListModel<String> pipeModel = new DefaultListModel<>();
- for (String pipeName : ImgChain.chan.pipelineRepo.keySet()) {
- pipeModel.addElement(pipeName);
+ for (String pipelneName : ImgChain.chan.pipelineRepo.keySet()) {
+ pipeModel.addElement(pipelneName);
}
JList<String> pipeList = new JList<>(pipeModel);
diff --git a/src/bjc/imgchain/pipeline/stages/AbstractPipelineStage.java b/src/bjc/imgchain/pipeline/stages/AbstractPipelineStage.java
index 4183f4f..e7e1f33 100644
--- a/src/bjc/imgchain/pipeline/stages/AbstractPipelineStage.java
+++ b/src/bjc/imgchain/pipeline/stages/AbstractPipelineStage.java
@@ -12,6 +12,12 @@ import bjc.imgchain.pipeline.StageType;
public abstract class AbstractPipelineStage implements PipelineStage {
private final StageType type;
+ /**
+ * Create a new abstract pipeline stage
+ *
+ * @param type
+ * The type of this stage.
+ */
protected AbstractPipelineStage(StageType type) {
this.type = type;
}
diff --git a/src/bjc/imgchain/pipeline/stages/AbstractPixelStage.java b/src/bjc/imgchain/pipeline/stages/AbstractPixelStage.java
index 8b161d6..b93f092 100644
--- a/src/bjc/imgchain/pipeline/stages/AbstractPixelStage.java
+++ b/src/bjc/imgchain/pipeline/stages/AbstractPixelStage.java
@@ -8,11 +8,18 @@ import bjc.imgchain.utils.Utils;
/**
* An abstract stage that processes images pixel-by-pixel.
+ *
* @author bjculkin
*
*/
public abstract class AbstractPixelStage extends AbstractPipelineStage {
+ /**
+ * Create a new abstract pixel stage.
+ *
+ * @param type
+ * The type of this stage.
+ */
protected AbstractPixelStage(StageType type) {
super(type);
}
@@ -21,7 +28,8 @@ public abstract class AbstractPixelStage extends AbstractPipelineStage {
public Image process(Image inp) {
BufferedImage buf = (BufferedImage) inp;
- BufferedImage res = new BufferedImage(buf.getWidth(), buf.getHeight(), BufferedImage.TYPE_INT_ARGB);
+ BufferedImage res = new BufferedImage(buf.getWidth(), buf.getHeight(),
+ BufferedImage.TYPE_INT_ARGB);
for (int y = 0; y < buf.getHeight(); y++) {
for (int x = 0; x < buf.getWidth(); x++) {
@@ -38,7 +46,10 @@ public abstract class AbstractPixelStage extends AbstractPipelineStage {
/**
* Process a pixel of data.
- * @param pix The pixel, as an array in the form (A, R, G, B)
+ *
+ * @param pix
+ * The pixel, as an array in the form (A, R, G, B)
+ *
* @return The new pixel, as an array in the form (A, R, G, B)
*/
public abstract int[] processPixel(int[] pix);
diff --git a/src/bjc/imgchain/pipeline/stages/GaussStage.java b/src/bjc/imgchain/pipeline/stages/GaussStage.java
index 5f5d919..80cdaa3 100644
--- a/src/bjc/imgchain/pipeline/stages/GaussStage.java
+++ b/src/bjc/imgchain/pipeline/stages/GaussStage.java
@@ -12,10 +12,18 @@ import javax.swing.JPanel;
import bjc.imgchain.pipeline.StageType;
import bjc.imgchain.utils.LabeledInputPanel;
+/**
+ * Stage which runs a gaussian blur over an image.
+ * @author Ben Culkin
+ *
+ */
public class GaussStage extends AbstractPipelineStage {
private int m;
private double sig, k;
+ /**
+ * Create a new gaussian blur stage.
+ */
public GaussStage() {
super(StageType.IMGTRANS);
}
@@ -33,6 +41,10 @@ public class GaussStage extends AbstractPipelineStage {
return ret;
}
+ /* @TODO 5 Oct, 2020 - Ben Culkin - :GaussianDoc
+ *
+ * Should document this better, when I get a chance to relookup the applicable math.
+ */
private Kernel genKern() {
float[][] w = new float[m][m];
@@ -93,10 +105,12 @@ public class GaussStage extends AbstractPipelineStage {
mField.field.addPropertyChangeListener("value", (ev) -> {
m = (Integer) mField.field.getValue();
});
+
LabeledInputPanel sigField = new LabeledInputPanel("Value for sigma", 3.0);
sigField.field.addPropertyChangeListener("value", (ev) -> {
sig = (Double) sigField.field.getValue();
});
+
LabeledInputPanel kField = new LabeledInputPanel("Value for k", 1.0);
kField.field.addPropertyChangeListener("value", (ev) -> {
k = (Double) kField.field.getValue();
diff --git a/src/bjc/imgchain/pipeline/stages/GreyscaleStage.java b/src/bjc/imgchain/pipeline/stages/GreyscaleStage.java
index 4cc227b..a7dc773 100644
--- a/src/bjc/imgchain/pipeline/stages/GreyscaleStage.java
+++ b/src/bjc/imgchain/pipeline/stages/GreyscaleStage.java
@@ -5,12 +5,22 @@ import javax.swing.JLabel;
import bjc.imgchain.pipeline.StageType;
+/**
+ * Transforms an image to a greyscale version.
+ *
+ * @author Ben Culkin
+ *
+ */
public class GreyscaleStage extends AbstractPixelStage {
+ /**
+ * Create a new greyscale stage.
+ */
public GreyscaleStage() {
super(StageType.IMGTRANS);
}
+ @Override
public int[] processPixel(int[] pix) {
int[] ret = new int[4];
diff --git a/src/bjc/imgchain/pipeline/stages/InverseColorStage.java b/src/bjc/imgchain/pipeline/stages/InverseColorStage.java
index 5157736..b3b8aee 100644
--- a/src/bjc/imgchain/pipeline/stages/InverseColorStage.java
+++ b/src/bjc/imgchain/pipeline/stages/InverseColorStage.java
@@ -5,8 +5,17 @@ import javax.swing.JLabel;
import bjc.imgchain.pipeline.StageType;
-public class NegativeStage extends AbstractPixelStage {
- public NegativeStage() {
+/**
+ * Stage which inverts image colors.
+ *
+ * @author Ben Culkin
+ *
+ */
+public class InverseColorStage extends AbstractPixelStage {
+ /**
+ * Create a new inversion stage.
+ */
+ public InverseColorStage() {
super(StageType.IMGTRANS);
}
diff --git a/src/bjc/imgchain/pipeline/stages/LoadStage.java b/src/bjc/imgchain/pipeline/stages/LoadStage.java
index ddf7939..d34b419 100644
--- a/src/bjc/imgchain/pipeline/stages/LoadStage.java
+++ b/src/bjc/imgchain/pipeline/stages/LoadStage.java
@@ -16,9 +16,17 @@ import javax.swing.JTextField;
import bjc.imgchain.pipeline.StageType;
+/**
+ * Stage which loads an image.
+ * @author Ben Culkin
+ *
+ */
public class LoadStage extends AbstractPipelineStage {
private String fileName;
+ /**
+ * Create a new stage which loads an image.
+ */
public LoadStage() {
super(StageType.IMGSOURCE);
}
diff --git a/src/bjc/imgchain/pipeline/stages/PipeStage.java b/src/bjc/imgchain/pipeline/stages/PipeStage.java
index 3b06b4f..f74e322 100644
--- a/src/bjc/imgchain/pipeline/stages/PipeStage.java
+++ b/src/bjc/imgchain/pipeline/stages/PipeStage.java
@@ -14,9 +14,17 @@ import bjc.imgchain.pipeline.Pipeline;
import bjc.imgchain.pipeline.PipelinePicker;
import bjc.imgchain.pipeline.StageType;
+/**
+ * Stage which runs a sub-pipeline.
+ * @author Ben Culkin
+ *
+ */
public class PipeStage extends AbstractPipelineStage {
private String pipeName;
+ /**
+ * Create a new sub-pipeline stage.
+ */
public PipeStage() {
super(StageType.IMGTRANS);
}
diff --git a/src/bjc/imgchain/pipeline/stages/RecallStage.java b/src/bjc/imgchain/pipeline/stages/RecallStage.java
index bcbbddb..1ee9892 100644
--- a/src/bjc/imgchain/pipeline/stages/RecallStage.java
+++ b/src/bjc/imgchain/pipeline/stages/RecallStage.java
@@ -8,9 +8,17 @@ import bjc.imgchain.ImgChain;
import bjc.imgchain.ImgPickerPanel;
import bjc.imgchain.pipeline.StageType;
+/**
+ * Stage which recalls an image from memory.
+ * @author Ben Culkin
+ *
+ */
public class RecallStage extends AbstractPipelineStage {
private String stashName;
+ /**
+ * Create a new recall stage.
+ */
public RecallStage() {
super(StageType.IMGSOURCE);
}
diff --git a/src/bjc/imgchain/pipeline/stages/SaveStage.java b/src/bjc/imgchain/pipeline/stages/SaveStage.java
index e38e403..82bf8f3 100644
--- a/src/bjc/imgchain/pipeline/stages/SaveStage.java
+++ b/src/bjc/imgchain/pipeline/stages/SaveStage.java
@@ -17,9 +17,18 @@ import javax.swing.JTextField;
import bjc.imgchain.pipeline.StageType;
import bjc.imgchain.utils.Utils;
+/**
+ * Stage which saves an image.
+ *
+ * @author Ben Culkin
+ *
+ */
public class SaveStage extends AbstractPipelineStage {
private String fileName;
+ /**
+ * Create a stage that saves an image.
+ */
public SaveStage() {
super(StageType.IMGSINK);
}
diff --git a/src/bjc/imgchain/pipeline/stages/StagePicker.java b/src/bjc/imgchain/pipeline/stages/StagePicker.java
index a62b15e..0d26139 100644
--- a/src/bjc/imgchain/pipeline/stages/StagePicker.java
+++ b/src/bjc/imgchain/pipeline/stages/StagePicker.java
@@ -11,11 +11,23 @@ import javax.swing.JTable;
import bjc.imgchain.utils.ImmutableTableModel;
+/**
+ * Stage picker GUI.
+ *
+ * @author Ben Culkin
+ *
+ */
public class StagePicker extends JDialog {
private static final long serialVersionUID = 1L;
+ /**
+ * Stage name to pick.
+ */
public String stageName;
+ /**
+ * Create a new stage picker.
+ */
public StagePicker() {
super();
diff --git a/src/bjc/imgchain/pipeline/stages/StashStage.java b/src/bjc/imgchain/pipeline/stages/StashStage.java
index 47689f5..68579c0 100644
--- a/src/bjc/imgchain/pipeline/stages/StashStage.java
+++ b/src/bjc/imgchain/pipeline/stages/StashStage.java
@@ -8,9 +8,18 @@ import bjc.imgchain.ImgChain;
import bjc.imgchain.pipeline.StageType;
import bjc.imgchain.utils.LabeledInputPanel;
+/**
+ * Stage which stashes an image.
+ *
+ * @author Ben Culkin
+ *
+ */
public class StashStage extends AbstractPipelineStage {
private String stashName;
+ /**
+ * Create a new image-stashing stage.
+ */
public StashStage() {
super(StageType.IMGSOURCE);
}
diff --git a/src/bjc/imgchain/pipeline/stages/SubMaskStage.java b/src/bjc/imgchain/pipeline/stages/SubMaskStage.java
index 594c97f..f06bff0 100644
--- a/src/bjc/imgchain/pipeline/stages/SubMaskStage.java
+++ b/src/bjc/imgchain/pipeline/stages/SubMaskStage.java
@@ -10,9 +10,18 @@ import bjc.imgchain.ImgPickerPanel;
import bjc.imgchain.pipeline.StageType;
import bjc.imgchain.utils.Utils;
+/**
+ * Stage which applies a subtraction mask to the image.
+ *
+ * @author Ben Culkin
+ *
+ */
public class SubMaskStage extends AbstractPipelineStage {
private String masqueName;
+ /**
+ * Create a new subtraction mask stage.
+ */
public SubMaskStage() {
super(StageType.IMGTRANS);
}
diff --git a/src/bjc/imgchain/pipeline/stages/ThresholdStage.java b/src/bjc/imgchain/pipeline/stages/ThresholdStage.java
index 55a4dd3..146c5c4 100644
--- a/src/bjc/imgchain/pipeline/stages/ThresholdStage.java
+++ b/src/bjc/imgchain/pipeline/stages/ThresholdStage.java
@@ -10,11 +10,27 @@ import javax.swing.border.TitledBorder;
import bjc.imgchain.pipeline.StageType;
import bjc.imgchain.utils.LabeledInputPanel;
+/**
+ * Stage which converts an image into three-tone.
+ *
+ * @author Ben Culkin
+ *
+ */
public class ThresholdStage extends AbstractPixelStage {
+ /**
+ * Create a new threshold stage, where all of the thresholds are 0.
+ */
public ThresholdStage() {
this(0, 0, 0);
}
+ /**
+ * Creates a new threshold stage.
+ *
+ * @param rr The red threshold.
+ * @param gg The green threshold.
+ * @param bb The blue threshold.
+ */
public ThresholdStage(int rr, int gg, int bb) {
super(StageType.IMGTRANS);