package ijopencv.opencv; import ij.ImagePlus; import ij.ImageStack; import org.bytedeco.javacpp.opencv_core.MatVector; import org.scijava.Prioritized; import org.scijava.Priority; import org.scijava.convert.AbstractConverter; import org.scijava.convert.Converter; import org.scijava.log.LogService; import org.scijava.plugin.Plugin; @Plugin(type = Converter.class, priority = Priority.LOW_PRIORITY) public class MatVectorImagePlusConverter extends AbstractConverter< MatVector, ImagePlus> { @Override public int compareTo(Prioritized o) { return super.compareTo(o); } @Override public LogService log() { return super.log(); } @Override public String getIdentifier() { return super.getIdentifier(); } @Override public < T> T convert(Object o, Class< T> type) { MatVector mv = (MatVector) o; ImageStack is = new ImageStack(); ImagePlus temp; MatImagePlusConverter ic = new MatImagePlusConverter(); for (int i = 0; i < mv.size(); i++) { temp = ic.convert(mv.get(i), ImagePlus.class); is.addSlice(temp.getProcessor()); } ImagePlus imp = new ImagePlus("image", is); return (T) imp; } @Override public Class< ImagePlus> getOutputType() { return ImagePlus.class; } @Override public Class< MatVector> getInputType() { return MatVector.class; } }