Getting Started

You can use ShapeLogic in different ways:

  • User mode
  • Development mode

If you just want to try ShapeLogic as a user this should be very simple. It should probably only take a few minutes after you have ImageJ installed.

User mode

Steps to get ShapeLogic working from within ImageJ from binary distribution

  • Install ImageJ
  • Download shapelogicplugin0.7.zip
  • Unzip it.
  • This will create a directory named shapelogicplugin
  • Take everything from this directory and copy it into ./ImageJ/plugins/

Testing ShapeLogic letter matching from within ImageJ

  • Open ImageJ
  • Create a new image say 100 time 100
  • Draw a letter in black on white background
Mdrawing
  • Go to the shapelogic menu and select item CapitalLetterMatch. Which does the following
    • Convert the image to a binary image
    • Call ImageJ's build in Skeletonize
    • Vectorize into bitmap into polygon
    • Clean up the vectorized polygon
    • Then annotate the polygon
    • Then match the polygon against all the rules for all the capital letters
    • With a little luck you will see a dialog box saying what letter was matched
    • If more than one letter match the match will fail
    • If the match fails then all the properties of the polygon will be written to the console for debugging

Result of match

Dialog with result of match

M match

Vectorized M with skeletonized letter in black and polygon in gray

M vectorized

Steps to get ShapeLogic working from within ImageJ manually

If you need a different version of shapelogic_-0.7.jar, say one compiled for JDK 1.5.

  • Create a ShapeLogic dir under ImageJ: ./ImageJ/plugins/shapelogic
  • Take the jar file for ShapeLogic: shapelogic_-0.7.jar, and move it to that directory
  • Add the jar files that ShapeLogic is dependent on to the ImageJ/plugin dir:
    • antlr-runtime-3.0.jar
    • commons-collections-3.2.jar
    • commons-jexl-1.1.jar
    • commons-logging-1.0.4.jar
    • commons-math-1.1.jar
    • guice-1.0.jar

These jar file can be found on any Marven 2 repository:

E.g. commons-math-1.1.jar can be found here: http://repo1.maven.org/maven2/commons-math/commons-math/1.1/

Or they can be taken out of the shapelogicplugin0.7.zip

ShapeLogic 0.7 should come with a version that contains all these dependent jars.

When you open ImageJ there will be a ShapeLogic menu with commands in.

You can get the binary distribution from the download page or compile it yourself.

Separating Java and logic rules

If you need to add you own rules to ShapeLogic you need to add you changes and compile ShapeLogic.

The goal is to separate the databases with the logical rules from the executable jar file, so you do not have to recompile.

Development mode

ShapeLogic is build using [http://maven.apache.org/ Maven 2].

This makes several build tasks very easy, so this is the recommended way doing builds, but the code should run fine without Maven.

Currently the project is set up to work directly with Eclipse 3.3, Java 1.6, but you can use: NetBeans, IntelliJ, JBuilder, emacs or vi.

  • Steps to compile and run unit tests

Check ShapeLogic out into a local directory.

Do a cd into that directory.

Run:

  • mvn test runs the unit tests locally
  • mvn package runs the unit tests locally, and if they passes it will create the jar file
  • Changing JDK version when building with Maven

You will have to change the JDK target in pom.xml:

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    </plugins>
  </build>