-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry excluding="src/" kind="src" path=""/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="lib" path="/home/lingutln/workspace/Annotation/library/commons-lang3-3.1.jar"/>
- <classpathentry kind="lib" path="/home/lingutln/workspace/Annotation/library/jface.jar"/>
- <classpathentry kind="lib" path="/home/lingutln/workspace/Annotation/library/json.jar"/>
- <classpathentry kind="lib" path="/home/lingutln/workspace/Annotation/library/swt-gtk-64.jar"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+ <classpathentry kind="src" path="src"/>\r
+ <classpathentry excluding="src/" kind="src" path=""/>\r
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
+ <classpathentry kind="lib" path="C:/Users/Nikhil/workspace/Annotation/library/commons-lang3-3.1.jar"/>\r
+ <classpathentry kind="lib" path="C:/Users/Nikhil/workspace/Annotation/library/jface.jar"/>\r
+ <classpathentry kind="lib" path="C:/Users/Nikhil/workspace/Annotation/library/json.jar"/>\r
+ <classpathentry kind="lib" path="C:/Users/Nikhil/workspace/image_annotation/lib/swt-win.jar"/>\r
+ <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
Tool.ZoomBestFit.action.setEnabled(canZoomBestFit());
if(view.getContext() != null)
{
- comboLabel.setEnabled((view.getContext().getSegmentObjects().size() > 0));
+ comboLabel.setEnabled((view.getContext().getSegmentationMasks().size() > 0));
}
else
{
public static Point mouseClickedPoint;
/**
- * For storing independent Segmentation objects
+ * For storing independent Segmentation objects (i.e the masks which are formed into objects)
*/
- private ArrayList<SegmentationMask> segmentationObjects;
+ private ArrayList<SegmentationMask> segmentationMaskObjects;
// lazy create (use getters for these fields)
private AnnotationManager annotations;
- private SegmentationObject segmentObject;
+ // SegmentationMask which has not yet been turned into an Object
+ private SegmentationMask currentSegmentMask;
private Image image;
private Rectangle bounds;
private SegmentationContext(ImageData imageData, File file) {
this.imageData = imageData;
this.file = file;
- segmentationObjects = new ArrayList<SegmentationMask>();
+ segmentationMaskObjects = new ArrayList<SegmentationMask>();
}
/**
// Makes needsHighlighting <code>False</code> for all the previous segments.
disableAllSegments(false);
// Set needsHighlighting <code>True</code> for the current segment.
- segmentObject.enabled = true;
- segmentationObjects.add(segmentObject);
+ currentSegmentMask.enabled = true;
+ segmentationMaskObjects.add(currentSegmentMask);
// Making a new segmentationObject after storing the current SegmentationObject
- segmentObject = null;
+ currentSegmentMask = null;
annotations.clear();
}
* @return A {@link SegmentationObject} instance. Returns the latest mask which hasn't yet turned into an object.
*/
public SegmentationMask getMask() {
- if (segmentObject == null) {
- segmentObject = new SegmentationObject(getBounds());
+ if (currentSegmentMask == null) {
+ currentSegmentMask = new SegmentationMask(getBounds());
}
- return segmentObject;
+ return currentSegmentMask;
}
/**
* All the masks excluding the current mask (i.e the mask which has not yet been made into a Segmentation object)
* @return
* A list of SegmentationMasks excluding the current mask which has not yet been made into a Segmentation object
*/
- public ArrayList<SegmentationMask> getSegmentObjects() {
+ public ArrayList<SegmentationMask> getSegmentationMasks() {
- return segmentationObjects;
+ return segmentationMaskObjects;
}
/**
*/
public void enableClickedSegment(Point mouseClickedPoint) {
- for(SegmentationMask segmentMaskObject : segmentationObjects)
+ for(SegmentationMask segmentMaskObject : segmentationMaskObjects)
{
if(segmentMaskObject.getPixel(mouseClickedPoint.x, mouseClickedPoint.y) == 1)
{
// Disable all previous segments
disableAllSegments(false);
// Enable the currently clicked segment.
- segmentObject.enabled = true;
+ segmentMaskObject.enabled = true;
}
}
}
public void disableAllSegments(boolean value)
{
- for(SegmentationMask segmentObject : segmentationObjects)
+ for(SegmentationMask currentSegmentMask : segmentationMaskObjects)
{
- if(segmentObject instanceof ie.dcu.segment.SegmentationObject)
- {
- ((ie.dcu.segment.SegmentationObject)segmentObject).enabled = value;
- }
+ currentSegmentMask.enabled = value;
}
}
new FileInputStream(file)));
ImageData imageData = null;
- SegmentationObject segmentObject = null;
+ SegmentationMask segmentMask = null;
AnnotationManager annotations = null;
try {
throw new IOException("No image found in context file");
}
- if (segmentObject == null) {
+ if (segmentMask == null) {
throw new IOException("No mask found in context file");
}
SegmentationContext ctx = new SegmentationContext(imageData, file);
- ctx.segmentObject = segmentObject;
+ ctx.currentSegmentMask = segmentMask;
ctx.annotations = annotations;
return ctx;
*/
public final int height;
+ //The total number of layers formed.
+ public static int numberOfLayers;
+
+ //The layering number of the segmentation mask.
+ public int layerNumber;
+
+ //Whether the segment needs to be enabled(highlighted) or not ?
+ public boolean enabled;
+
/**
* Create a segmentation mask using the specified dimensions. All pixels in
* the mask are initially set to {@link SegmentationMask#UNKNOWN}.
+++ /dev/null
-package ie.dcu.segment;
-
-import org.eclipse.swt.graphics.Rectangle;
-
-
-/**
- * Class that represents a independent segmentation mask.
- *
- * A segmentation mask is a two dimensional matrix of byte values. It is used
- * to represents which pixels in an image that are part of the foreground, and
- * which are part of the background.
- *
- * @author Nikhil
- */
-
-public final class SegmentationObject extends SegmentationMask{
-
- private static final long serialVersionUID = 8321845179859248904L;
-
- //The total number of layers formed.
- public static int numberOfLayers;
-
- //The layering number of the segmentation mask.
- public int layerNumber;
-
- //Whether the segment needs to be enabled(highlighted) or not ?
- public boolean enabled;
-
- public SegmentationObject(int width, int height) {
- super(width, height);
- this.layerNumber = ++numberOfLayers;
- this.enabled = false;
- // TODO Auto-generated constructor stub
- }
-
- public SegmentationObject(Rectangle bounds) {
- this(bounds.width, bounds.height);
- // TODO Auto-generated constructor stub
- }
-
-
-}
// Paint image
gc.drawImage(ctx.getImage(), 0, 0);
-
- System.out.println("Number of mask objects"+ctx.getSegmentObjects().size());
+ int numberOfMaskObjects = ctx.getSegmentationMasks().size();
// Paint all masks skipping the enabled mask.
- if(ctx.getSegmentObjects().size() > 0)
+ if(numberOfMaskObjects > 0)
{
// For drawing all the disabled masks.
- for(SegmentationMask segmentObject : ctx.getSegmentObjects())
+ for(SegmentationMask segmentMask : ctx.getSegmentationMasks())
{
// Skipping the enabled segment from painting. We will paint the enabled segment at last.
- if(segmentObject instanceof ie.dcu.segment.SegmentationObject)
+ /*if(segmentMask.layerNumber == 0)
+ {
+ createVisibleMask(segmentMask,true);
+ gc.drawImage(maskImage, 0, 0);
+ }*/
+ if(segmentMask.enabled == true)
{
- System.out.println("Enabled status : "+((ie.dcu.segment.SegmentationObject)segmentObject).enabled);
- if(((ie.dcu.segment.SegmentationObject)segmentObject).enabled == true)
- {
- continue;
- }
+ continue;
}
else
{
- createVisibleMask(segmentObject,false);
+ createVisibleMask(segmentMask,false);
gc.drawImage(maskImage, 0, 0);
}
}
- // Current mask which has not yet been made into an object
- createVisibleMask(ctx.getMask(),false);
- gc.drawImage(maskImage, 0, 0);
}
// Painting the enabled mask.
- if(ctx.getSegmentObjects().size() > 0)
+ if(numberOfMaskObjects > 0)
{
// For drawing all the previous masks.
- for(SegmentationMask segmentObject : ctx.getSegmentObjects())
+ for(SegmentationMask segmentMask : ctx.getSegmentationMasks())
{
// Blending of background pixel values while pasting the last mask only
- if(segmentObject instanceof ie.dcu.segment.SegmentationObject)
+ if(segmentMask.enabled == true)
{
- if(((ie.dcu.segment.SegmentationObject)segmentObject).enabled == true)
- {
- createVisibleMask(segmentObject,true);
- gc.drawImage(maskImage, 0, 0);
- }
+ createVisibleMask(segmentMask,true);
+ gc.drawImage(maskImage, 0, 0);
}
}
+ // Current mask which has not yet been made into an object
+ createVisibleMask(ctx.getMask(),false);
+ gc.drawImage(maskImage, 0, 0);
}
// Very initial mask, which has not yet been turned into an object.
else
createVisibleMask(ctx.getMask(),true);
gc.drawImage(maskImage, 0, 0);
}
-
// Paint all annotations
ctx.getAnnotations().paint(im);
index = 2;
break;
case SegmentationMask.FOREGROUND:
- alpha = (byte) 128;
+ alpha = (byte) 255;
index = 1;
break;
default: