User Tools

Site Tools


documents:120206pyip_cooking:python_imagej_cookbook

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documents:120206pyip_cooking:python_imagej_cookbook [2025/10/05 22:32] – [Java native 2D Array from Python2D] kotadocuments:120206pyip_cooking:python_imagej_cookbook [2025/10/05 22:53] (current) – [Converting Java array types] kota
Line 783: Line 783:
 Here is an example of creating a floating-point image from 2D array.  Here is an example of creating a floating-point image from 2D array. 
  
-<code python>+<code python linenums:1>
 from jarray import zeros from jarray import zeros
 from ij import ImagePlus from ij import ImagePlus
Line 806: Line 806:
 ImagePlus('fp', fp).show() ImagePlus('fp', fp).show()
 </code> </code>
 +
 +In short, as simple as:
 +<code python linenums:1>
 +from jarray import zeros
 +from ij import ImagePlus
 +from ij.process import FloatProcessor
 +
 +matrix2D = [zeros(100, 'f')]*200
 +ImagePlus('fp', FloatProcessor(matrix2D)).show()
 +</code>
 +
 +
    
 ==== Converting Java array types ==== ==== Converting Java array types ====
  
-Sometimes we need to convert the type of Java array e.g. double[] to int[]. For this, there is no magic trick and need to run a loop. Below is a code fragment. +Sometimes we need to convert the type of Java array e.g. double[] to int[]. In Java we can do this by for-loop with casting from float to int, but in Jython we can use the map function 
  
 <code:py>  <code:py> 
 +from ij import IJ
 from ij.process import StackStatistics from ij.process import StackStatistics
 import jarray import jarray
  
 +imp = IJ.getImage() #stack
 stackstats = StackStatistics(imp) stackstats = StackStatistics(imp)
-histD = stackstats.histogram() +histD = stackstats.histogram() #double[] returned, taken as floats in python 
-hist = jarray.zeros(len(histD), 'i'+print(type(histD[0])) 
-for i in range(len(histD)): + 
-    hist[iint(histD[i])+hist = map(int, histD) 
 +histInt = jarray.array(hist, 'i'
 +print(type(histInt[0])) #Java int[]
 </code> </code>
  
documents/120206pyip_cooking/python_imagej_cookbook.1759703572.txt.gz · Last modified: 2025/10/05 22:32 by kota

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki