Code Monkey home page Code Monkey logo

ij-cmp-bia's Introduction

ImageJ plugins by CMP-BIA group

===============================

These plugins have their home on the Fiji Wiki.

CMP-BIA tools

We extend the ImageJ implementation by our java codes. This project mainly contains implementation of our methods as plugins in ImageJ (or Fiji) and some other useful API for image segmentation and registration.

General project structure

  • src/main/java/ - all our source codes and some external single java classes. ** plugins - only the runnable IJ plugins are here. ** classification - clustering and classification functions. ** optiomisation - optimisation algorithms such as L-BFGS. ** registration - set of registration functions mainly the ASSAR. ** segmentation - contains segmentation structures with own visualisation and some simple supplementary methods; there are also superpixel clustering methods (e.g. SLIC) and other segmentation methods. ** tools - some useful tools for type conversion, number generators, matrix tools, logging, etc. ** transform - transformation function for images such as wavelets.
  • src/test/java/ - validation tests using JUnit templates for code testing per parts; the internal structure is similar to the main/ folder; they can be also seen as samples how to use individual functions.
  • docs/ - folder for some related documents.
  • target/ - folder into which Maven will write the compiled artifacts.

ImageJ plugins

  • jSLIC superpixel segmentation (only 2D images)

Reference

[1] Borovec, J., & Kybic, J. (2014). jSLIC : superpixels in ImageJ. In Z. Kunbelova & J. Heller (Eds.), Computer Vision Winter Workshop (pp. 14โ€“18). Praha: Czech Society for Cybernetics and Informatics. Retrieved from ftp://cmp.felk.cvut.cz/pub/cmp/articles/borovec/Borovec-CVWW2014.pdf

ij-cmp-bia's People

Contributors

borda avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ij-cmp-bia's Issues

JSLIC Superpixels - Java library errors on iMac

Recently, I started to get an error message when I run the JSLIC superpicels 2D plugin for ImageJ, and I think the error is not inside the JSLIC plugin, but rather is some sort of JAVA configuration error on my iMac. The error message is below, if anyone direct me towards a solution, or users group to discuss this error, I will be grateful.

ImageJ/plugins/segmentation/jSLIC segmentation 2D  *error*

(Fiji Is Just) ImageJ 2.0.0-rc-68/1.52i; Java 1.8.0_73 [64-bit]; Mac OS X 10.13.6; 461MB of 6032MB (7%)
java.lang.NoClassDefFoundError: net/miginfocom/layout/ComponentWrapper
	at org.scijava.ui.swing.console.ConsolePanel.initGui(ConsolePanel.java:110)
	at org.scijava.ui.swing.console.ConsolePanel.<init>(ConsolePanel.java:83)
	at org.scijava.ui.swing.console.SwingConsolePane.initLoggingPanel(SwingConsolePane.java:149)
	at org.scijava.ui.swing.console.SwingConsolePane.consolePanel(SwingConsolePane.java:143)
	at org.scijava.ui.swing.console.SwingConsolePane.append(SwingConsolePane.java:112)
	at org.scijava.ui.console.AbstractConsolePane.outputOccurred(AbstractConsolePane.java:60)
	at org.scijava.console.DefaultConsoleService.notifyListeners(DefaultConsoleService.java:131)
	at org.scijava.console.DefaultConsoleService$OutputStreamReporter.publish(DefaultConsoleService.java:227)
	at org.scijava.console.DefaultConsoleService$OutputStreamReporter.write(DefaultConsoleService.java:213)
	at org.scijava.console.MultiOutputStream.write(MultiOutputStream.java:90)
	at java.io.PrintStream.write(PrintStream.java:480)
	at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
	at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
	at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104)
	at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:185)
	at java.io.PrintStream.write(PrintStream.java:527)
	at java.io.PrintStream.print(PrintStream.java:669)
	at java.io.PrintStream.println(PrintStream.java:806)
	at sc.fiji.CMP_BIA.utils.Logging.logMsg(Logging.java:22)
	at sc.fiji.CMP_BIA.segmentation.superpixels.jSLIC.initInternalVaribales(jSLIC.java:110)
	at sc.fiji.CMP_BIA.segmentation.superpixels.jSLIC.<init>(jSLIC.java:95)
	at sc.fiji.CMP_BIA.segmentation.superpixels.jSLICp2D.<init>(jSLICp2D.java:38)
	at sc.fiji.CMP_BIA.plugins.jSLIC_superpixels_.processSelf(jSLIC_superpixels_.java:150)
	at sc.fiji.CMP_BIA.plugins.jSLIC_superpixels_.process(jSLIC_superpixels_.java:129)
	at sc.fiji.CMP_BIA.plugins.jSLIC_superpixels_.run(jSLIC_superpixels_.java:118)
	at ij.plugin.filter.PlugInFilterRunner.processOneImage(PlugInFilterRunner.java:266)
	at ij.plugin.filter.PlugInFilterRunner.<init>(PlugInFilterRunner.java:114)
	at ij.IJ.runUserPlugIn(IJ.java:230)
	at ij.IJ.runPlugIn(IJ.java:192)
	at ij.Executer.runCommand(Executer.java:137)
	at ij.Executer.run(Executer.java:66)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: net.miginfocom.layout.ComponentWrapper
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 32 more

wavelets package

Hi,

I couldn't find transform package imported in Descriptors2D (sc.fiji.CMP_BIA.transform.wavelets.HaarWavelets). Is it accessible from somewhere else?

add CI

Add continues integrations such as Travis
EDIT: maybe GH action would be easier as it will all under one food ๐Ÿฐ

No ROIs generated while segmenting gray images

The plugin is working great, however, if I open Lena, convert to 8bits gray and process the image using the JSlic plugin, no ROIs show-up into the ROI manager:

run("Lena (68K)");
run("8-bit");
run("jSLIC superpixels 2D", "init.=30 regularisation=0.20 export overlap=none colour indexed");

However, the segmentation happens.

It is not the case if the image is not converted to gray-scale.

Unnecessary info printed to the Log window

When running the jSLIC plugin, there is a bunch of information printed to the Log window:

 Superpixel size: 35
 jSLIC initialisation...
 jSLIC processing...
 jSLIC process took 6.945s
 jSLIC visualisation...
 -> show ROI manager
 jSLIC finished.

It would be great if that is an option, e.g. a 'Details' checkbox.
In https://github.com/Borda/ij-CMP-BIA/blob/master/src/main/java/sc/fiji/CMP_BIA/plugins/jSLIC_superpixels_.java

I think the lines that have:

ij.IJ.log("whatever message");

and also

 printInfo("whatever message");

should be executed if, for example, a variable set in the plugin dialog is checked.

Otherwise running consecutively the plugin fills the Log window with
information that it is often not necessary and makes it difficult to parse other desired output in the Log window.

For example if there were a dialog entry Details checked it should print the message, otherwise it should not:

 if (details)  ij.IJ.log("whatever message");

or similar.
Or, alternatively just avoid the output as it does not really add anything to the procedure.
Info on the sequence of various steps in the process could be output to the status bar, e.g.

IJ.showStatus("Now I am doing this."); or to the progress bar using IJ.showProgress()

Thanks for considering this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.