Emailconfirmed

327

edits
m
~~=~~== Importing Java module and classes ~~=~~==
~~=~~=== ImageJ and Fiji API ~~=~~===
~~=~~=== Using openCV in Jython ~~=~~===
~~An simple example : creating an identity matrix of size 3x3~~
~~print Id~~TwoColumn = Mat() # initialise outputvconcat(Col1, Col2, TwoColumn) # output stored in TwoColumnprint CvMat(~~Id~~TwoColumn) ~~# nice to visualise the matrix~~

→Links: Add aditional link

{{GitHubEmbed|org=imagej|repo=imagej-scripting|path=src/main/resources/script_templates/Tutorials/Wiki_Jython_Tutorial_3.py}}

Another great feature of Jython is the possibility to use functions from Java jar package that resides in the jar folder of imageJ.

The following API documentation lists all available module and functions :

</source>

It is even possible to use most of opencv functionalities within Jython/Fiji. There are several options (see the [https://imagej.net/OpenCV wiki page about opencv]), yet the most straight forward is probably IJ-OpenCV which is available via the update sites. It will automatically download the necessary packages and dependencies in your Fiji installation.

A manual installation is also possible by putting the jar packages in the jar folder of imageJ. They are avalaible on the [https://github.com/joheras/IJ-OpenCV IJopenCV github], which even provides a maven option.

==== Matrices ====

The first thing to know about OpenCV is that most functions work with an OpenCV matrix object. Fortunately, the IJ-OpenCV project provides some converters :

Now to use opencv function, we use the [http://bytedeco.org/javacpp-presets/opencv/apidocs/ JavaCPP API] that contains almost all functions of opencv.

<source lang="python">

from org.bytedeco.javacpp.opencv_core import Mat,CvMat, vconcat

## Typical matrices ##

# Identity Matrix of size (3x3) and type 8-bit

Id = Mat().eye(3,3,0).asMat()

print Id

print CvMat(Id) # handy to visualise the matrix

# Matrix of ones (3x3)

One = Mat().ones(3,3,0).asMat()

# Matrix of zeros (3x3)

Zero = Mat().zeros(3,3,0).asMat()

# Custom Matrices

# 1D-Matrix can be initialize from a list

# For 2D (or more) we have to concatenate 1D-Matrices

Row1 = Mat([1,2,3,4,5]) # 1D matrix

Row2 = Mat([6,7,8,9,10])

</source>

* <code>org.bytedeco.javacpp.opencv_core.transform</code>

That's the one to use ! It takes only <code>org.bytedeco.javacpp.opencv_core.Mat</code> as input, which is the most approriate in Fiji/Jython

==== Scalar ====

In addition to Matrices, opencv allows to use Scalar objects

A scalar is a 4 item element (v0, v1, v2, v3).

If v1=v2=v3=0 then the Scalar is real.

<source lang="python">

from org.bytedeco.javacpp.opencv_core import Scalar

# Real scalar can be initiated with a float parameters

Number = Scalar(5.0)

Number = Scalar(float(5))

print Number

# Using an integer as parameter has a different meaning

Empty = Scalar(5) # This initiate an empty Scalar object of size 5

print Empty

# Alternatively one can set the other values of the Scalar

Complex = Scalar(1,2,3,4)

print Complex

</source>

==== Operations ====

It is possible to perform some operations between matrices, or between Scalar and matrices.

<source lang="python">

from org.bytedeco.javacpp.opencv_core import Scalar, Mat, subtract

A = Mat([1,2,3,4,5])

B = Mat([1,2,-3,-4,0])

Number = Scalar(10.0)

## Number - B ( B-Number is also possible)

Expr = subtract(Number,B)

print CvMat(Expr.asMat())

## A - B

Out = Mat()

subtract(A,B,Out)

print CvMat(Out)

</source>

== Self written Jython modules for ImageJ ==

* [[ImageJ2_Python_Scripts|ImageJ2 Python Scripts]]

* [https://www.ini.uzh.ch/~acardona/fiji-tutorial/ A Fiji Scripting Tutorial by Albert Cardona]

* [http://wiki.cmci.info/documents/120206pyip_cooking/python_imagej_cookbook Jython scripting cookbook]

== References ==

<references />

Retrieved from "https://imagej.net/Special:MobileDiff/38719...38837"