*********
Jim class
*********

.. toctree::
   :maxdepth: 3
   
.. py:module:: jiplib

.. autoclass:: Jim

===========
Jim methods
===========

---------------------
Access Jim attributes
---------------------

.. automethod:: jiplib.Jim.nrOfCol
.. automethod:: jiplib.Jim.nrOfRow
.. automethod:: jiplib.Jim.nrOfBand
.. automethod:: jiplib.Jim.nrOfPlane
.. automethod:: jiplib.Jim.printNoDataValues
.. automethod:: jiplib.Jim.pushNoDataValue
.. automethod:: jiplib.Jim.setNoDataValue
.. automethod:: jiplib.Jim.setNoData
.. automethod:: jiplib.Jim.clearNoData
.. automethod:: jiplib.Jim.getDataType

..
   from MIA module imem
       - getBitsPerPixel

--------------------------
Get geospatial information
--------------------------

.. automethod:: jiplib.Jim.covers
.. automethod:: jiplib.Jim.getGeoTransform
.. automethod:: jiplib.Jim.setGeoTransform
.. automethod:: jiplib.Jim.copyGeoTransform
.. automethod:: jiplib.Jim.getProjection
.. automethod:: jiplib.Jim.setProjection
.. automethod:: jiplib.Jim.getBoundingBox
.. automethod:: jiplib.Jim.getCenterPos
.. automethod:: jiplib.Jim.getUlx
.. automethod:: jiplib.Jim.getUly
.. automethod:: jiplib.Jim.getLrx
.. automethod:: jiplib.Jim.getLry
.. automethod:: jiplib.Jim.getDeltaX
.. automethod:: jiplib.Jim.getDeltaY
.. automethod:: jiplib.Jim.getRefPix

--------------------
Input/Output methods
--------------------

.. automethod:: jiplib.Jim.open
.. automethod:: jiplib.Jim.close
.. automethod:: jiplib.Jim.write
.. automethod:: jiplib.Jim.dumpImg
.. automethod:: jiplib.Jim.isEqual
..
   from MIA module imem
       # - imageCreate
       # - imageCopy
       # - imageLutCopy
       # - imageLutCreate
       # - imageLutFree
       # - imageDump
       - setPixVal
       - getPixVal
..
   # *** from MIA module io (redundant?)
   #     - gdalInfo
   #     - gdalRead
   #     - readImageBinary
   #     - readImage
   #     - readImageToType
   #     - writeColorMapTiff
   #     - writeTiff
   #     - writeTiffOneStripPerLine
   #     - gdalGetGeoKey
   #     - gdalGetTiffTagGeo
   #     - readImageScale
   #     - readTiffSubset
   #     - tiffInfoFieldValue
   #     - tiffInfo
   #     - writeGeoTiff
   #     - writeMultibandGeoTiff

-------------------------------------
Subset methods and geometry operators
-------------------------------------

.. automethod:: jiplib.Jim.crop

Geometry operators (from MIA module gemetry)

- imageFrameSet
- imageFrameAdd
- imageFrameSubstract
- imageInsert
- imageInsertCompose
- imageCut
- getBoundingBoxNonZeroDomain
- imageMagnify
- imageRotateCoor
- predicateSizeAndTypeEqual
- predicateSizeEqual
- plotLine
- overlapMatrix

---------------
Convert methods
---------------

.. automethod:: jiplib.Jim.convert
.. automethod:: jiplib.Jim.jim2np
.. automethod:: jiplib.Jim.np2jim

..
      # - band2plane
      # - plane2band
      # - jim2json
      # - json2jim
      # - jim2mia (private)
      # - mia2jim (private)
..
   from MIA module format
       - convertTo1bitPerPixel
       - convertTo4bitPerPixel
       - convertToUint16
       - convertToUint32
       - convertToFloat32
       - convertToDouble64
       - convertToUchar8
       - convertDouble64ToFloat32
       - convertUint32toFloat32
       - convertSwapBytes
       - convertDeinterleave
       # can be moved to member function of JimList
       - convertHsiToRgb
       - convertHlsToRgb
       - convertRgbToHsx
       - convertRgbTo3d
..
   from MIA module imem
   #     - imageToArray
   #     - imageFromArray

-----------------------------------------------
Convolution filters and morphological operators
-----------------------------------------------

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spectral/temporal domain (1D)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. automethod:: jiplib.Jim.filter1d

^^^^^^^^^^^^^^^^^^^
spatial domain (2D)
^^^^^^^^^^^^^^^^^^^

.. automethod:: jiplib.Jim.filter2d

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Advanced spatial morphological operators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

convolutional filters (from MIA module convolve)

- convolve
- convolveDownSample
- runSum2d
- runSum3d
- runSumInSquareNgb
- meanFilterInSquareNgb
- meanFilterIn2dNgb
- varianceFilterIn2dNgb
- sumInSquareNgb
- gradientAzimuth
- orientationMap
- phaseCorrelation
      
Morphological operators (from MIA module erodil)

- morphoErodeLine
- morphoDilateLine
- morphoDilateLinePeriodic
- morphoErodeLinePeriodic
- morphoErodeNgb4
- morphoDilateNgb4
- morphoErode
- morphoDilate
- morphoRankFilter
- morphoRankFilterSquare
- morphoRankFilterLine
- morphoRankFilterLineTI
- morphoGradientMultibandSquareNgb
- morphoGradientMultiband2dNgb

Morphological operators (from MIA module opclo)

- morphoOpeningAttribute
- morphoOpeningArea
- morphoClosingArea
- morphoOpeningAreaROI
- morphoClosingAreaROI
- convexHull
- morphoClosingHalfPlane
- morphoClosingHalfPlaneTI

Morphological operators (from MIA module hmt)

- skeleton
- pruneBinary
- extractPixelConfigurationBinary
- extractPixelConfigurationGrey
- switchOperator
- skeletonOrderIndependent
- skeletonAnchored
- orderDependentThin
- orderDependentThinFifo
- orderIndependentThin
- orderIndependentThinFifo
       
Geodesy operators (from MIA module geodesy)

- geodesicReconstructionByDilation
- geodesicReconstructionByErosion
- geodesicReconstruction
- geodesicComplete
- getRegionalMinima
- geodesicTimeFlat
- geodesicTime
- geodesicTimeSymmetric

Distance functions (from MIA dist module)

- distance2d4
- distance2dChamfer57
- distance2dChamfer
- distance2dEuclideanFifo
- distance2dEuclideanSquared
- distanceInfluenceZones2dEuclidean
- distanceInfluenceZones2dOrderedIndependent
- distanceGeodesic
- distance2dEuclideanConstrained

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
spatial and spectral domain (3D)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Morphological operators (from MIA module erodil)

- morphoErodeVolumic

----------------------
Classification methods
----------------------

.. automethod:: jiplib.Jim.classify
.. automethod:: jiplib.Jim.classifySML
.. automethod:: jiplib.Jim.reclass
..
   automethod:: jiplib.Jim.validate

..
   from MIA module stats
       - classStatsInfo
       - classMinDst
       - classBox
       - classMahanalobis
       - classMaximumLikelihood
       - similarityDetectionSequential
       - crosscorrNormalisedLewis
       - crosscorrNormalised

------------------------
Mask / Threshold methods
------------------------

.. automethod:: jiplib.Jim.setThreshold
.. automethod:: jiplib.Jim.getMask
.. automethod:: jiplib.Jim.setMask
..
   from MIA module pointop
       - pointOpThresh
       - pointOpSetLevel
       - pointOpSetRange

--------------------------------------
Statistical methods and interpolations
--------------------------------------

.. automethod:: jiplib.Jim.statProfile
.. automethod:: jiplib.Jim.getStats
.. automethod:: jiplib.Jim.stretch

..
   automethod:: jiplib.Jim.fillNoData (currently only in pktools, to be ported to jiplib)

..
   from MIA module imem
       - imageInfo
       - getFirstPixWithVal
..
   Miscelaneous operators (from MIA module miscel)
       - orientationMean
       - orientationCoherence
       - paraboloidGetCoordinatesExtremum
       - linearFit
       - gradientTransition
..
   from MIA module stats
       - histo1d
       - histo2d
       - histo3d
       - histo1dCumulative
       - applyLUT3d
       - applyLUT2d
       - surfaceArea
       - runSumDir
       - getMinMax
       - getFirstMaxOffset
       - histoCompress
       - applyLUT1d
       - applyLUT1dTypeMatch
       - getSum
       - propagateMaxDir
       - predicateIdentity
       - getMax
       - getMinMax
       - histoMatchRgb (can be moved to member function of JimList)
       - histoMatch3dRgb (can be moved to member function of JimList)
       - linearCombinationMultiband (not implemented yet)
       - meanConditional (not implemented yet)
       - sortIndex
..
   from MIA module proj
       - gridding
       # - cs2cs (not implemented yet)

--------------------------------------------------
Extracting pixel values from overlays and sampling
--------------------------------------------------

.. automethod:: jiplib.Jim.extractOgr
.. automethod:: jiplib.Jim.extractSample
.. automethod:: jiplib.Jim.extractImg

--------------------------------
Digitial elevation model methods
--------------------------------

..
   - filterdem (currently only in pktools, to be ported to jiplib and renamed to dem2dtm)
   - dsm2shadow (currently only in pktools, to be ported to jiplib)
..
   (from MIA dem module)
       - demFlowDirectionD8
       - demSlopeD8
       - demFlow
       - demFlowNew
       - demContributingDrainageArea
       - demContributingDrainageAreaStratify
       - demFlowDirectionDInf
       - demContributingDrainageAreaDInf
       - demSlopeDInf
       - demFloodDirection
       - demCatchmentBasinOutlet
       - demCatchmenBasinConfluence
       - demStrahlerOrder
       - demPitRemovalCarve
       - demPitRemovalOptimal
       - demFlowDirectionFlat
       - demFlowDirectionFlatGeodesic
       - demUpstreamMaxHeight
       - demShade
       - demLineDilate3d

----------------------------------------
Segmentation methods and label operators
----------------------------------------

..
   Segment operators (from MIA module segment)
       - segmentationWatershed
       - segmentationWatershedFAH
       - skeletonFah
       - skeletonFah2
       - compose
       - segmentationWatershedOrderIndependent
       - segmentationSeededRegionGrowing
       - segmentationSeededRegionGrowingMultiband (not implemented yet)
       - segmentationSeededRegionGrowingCore (not implemented yet)
       - labelQuasiFlatZones (not implemented yet)
       - segmentationSeededRegionGrowingMultiband (error in rename: both mssrg and mcisrg are mapped to same function?)
       - segmentImageMultiband (not implemented yet)
       - writeGnuPlot3D (not implemented yet)
       - vectorizeImage (not implemented yet)
       - predicatePartitionEqual
       - predicatePartitionFiner
       - imgc
       - dendrogram (not implemented yet)
       - partitionSimilarity
..
   Label methods (from MIA module label)
       - labelBinary
       - labelPixNgb
       - labelFlatZones
       - labelFlatZonesSeeded
       - flatZonesSeeded
       - labelPix
       - labelsResolve
       - labelsReorder
       - labelErode
       - propagate
       - labelsSet
       - labelsSetGraph
       - labelsSetArea
       - labelRelabel
       - labelsGetLut
       - labelsGetLutSeq
       - labelsImageGetLut
       - labelsGetContortionLut
       - dissimToAlphaCCs
       - vertexDegreeAlpha
       - vertexSeparation
       - labelVertexConnectedness
       - labelAlphaCCs
       - labelConstrainedCCsMi
       - labelConstrainedCCsCi
       - labelConstrainedCCs
       - labelConstrainedCCsVariance
       - labelConstrainedCCsMultibandDissim
       - labelConstrainedCCsAttr
       - alphaTreeDissimGet (can be moved to member function of JimList)
       - edgeWeight
       - dbscan
       - labelsGetOuterEdgeLut
       - labelsGetOuterEdge
       - labelsGetOuterContour
..
   Arithmetic operators (from MIA module pointop)
      - pointOpBitwise
      - pointOpNegation
      - pointOpArith
      - pointOpArithCst
      - pointOpAbs
      - pointOpSqrt
      - pointOpLog
      - pointOpAtan
      - pointOpCos
      - pointOpAcos
      - pointOpSin
      - pointOpAsin
      - pointOpModulo
      - pointOpComplement
      - pointOpPower2
      - pointOpBlank
      - pointOpBitShift
