├── LICENSE.txt ├── demos ├── imFilters │ ├── demoImBoxFilter.m │ ├── demoImBoxFilter_3d.m │ ├── demoWatSobel.m │ ├── double2rgbDemo.png │ ├── html │ │ ├── demoImBoxFilter_3d.html │ │ ├── demoImBoxFilter_3d.png │ │ ├── demoImBoxFilter_3d_01.png │ │ ├── demoWatSobel.html │ │ ├── demoWatSobel.png │ │ ├── demoWatSobel_01.png │ │ ├── demoWatSobel_02.png │ │ ├── demoWatSobel_03.png │ │ ├── demoWatSobel_04.png │ │ ├── demoWatSobel_05.png │ │ └── demoWatSobel_06.png │ └── imOverlayHead3D.png ├── imGeodesics │ ├── demoImGeodesicDistanceMap.m │ ├── demoImGeodesicPath.m │ ├── demoImGeodesicPath.png │ ├── demoImMaxGeodesicPath.m │ ├── demoImMaxGeodesicPath.png │ ├── double2rgb.m │ ├── geodesic_Disks_Point_w34.png │ └── html │ │ ├── demoImGeodesicDistanceMap.html │ │ ├── demoImGeodesicDistanceMap.png │ │ ├── demoImGeodesicDistanceMap_01.png │ │ ├── demoImGeodesicDistanceMap_02.png │ │ ├── demoImGeodesicDistanceMap_03.png │ │ ├── demoImGeodesicDistanceMap_04.png │ │ ├── demoImGeodesicPath.html │ │ ├── demoImGeodesicPath.png │ │ ├── demoImGeodesicPath_01.png │ │ ├── demoImGeodesicPath_02.png │ │ ├── demoImGeodesicPath_03.png │ │ ├── demoImMaxGeodesicPath.html │ │ ├── demoImMaxGeodesicPath.png │ │ ├── demoImMaxGeodesicPath_01.png │ │ └── demoImMaxGeodesicPath_02.png ├── imMeasures │ ├── demoImEquivalentEllipse.m │ ├── demoImJointHistogram.m │ ├── demoImMaxFeretDiameter.m │ ├── demoImOrientedBox.m │ ├── demoImRAG.m │ ├── demoImRAG.png │ ├── demo_imRAG_coins.m │ ├── enclosingRectangle.m │ ├── html │ │ ├── demoImEquivalentEllipse.html │ │ ├── demoImEquivalentEllipse.png │ │ ├── demoImEquivalentEllipse_01.png │ │ ├── demoImEquivalentEllipse_02.png │ │ ├── demoImEquivalentEllipse_03.png │ │ ├── demoImEquivalentEllipse_04.png │ │ ├── demoImEquivalentEllipse_05.png │ │ ├── demoImJointHistogram.html │ │ ├── demoImJointHistogram.png │ │ ├── demoImJointHistogram_01.png │ │ ├── demoImJointHistogram_02.png │ │ ├── demoImJointHistogram_03.png │ │ ├── demoImJointHistogram_04.png │ │ ├── demoImMaxFeretDiameter.html │ │ ├── demoImMaxFeretDiameter.png │ │ ├── demoImMaxFeretDiameter_01.png │ │ ├── demoImMaxFeretDiameter_02.png │ │ ├── demoImMaxFeretDiameter_03.png │ │ ├── demoImMaxFeretDiameter_04.png │ │ ├── demoImMaxFeretDiameter_05.png │ │ ├── demoImOrientedBox.html │ │ ├── demoImOrientedBox.png │ │ ├── demoImOrientedBox_01.png │ │ ├── demoImOrientedBox_02.png │ │ ├── demoImOrientedBox_03.png │ │ ├── demoImOrientedBox_04.png │ │ ├── demoImOrientedBox_05.png │ │ ├── demoImRAG.html │ │ ├── demoImRAG.png │ │ ├── demoImRAG_01.png │ │ ├── demoImRAG_02.png │ │ ├── demoImRAG_03.png │ │ └── demoImRAG_04.png │ ├── imColorHistogram.png │ ├── imEnclosingRectangle.m │ ├── imOrientedBoxDemo.png │ ├── img1.bmp │ ├── img2.bmp │ └── res-rigid2.tif ├── imShapes │ ├── demoMeshShapes3d.m │ ├── demoShapes2d.m │ ├── demoShapes3d.m │ └── html │ │ ├── demoMeshShapes3d.html │ │ ├── demoMeshShapes3d.png │ │ ├── demoMeshShapes3d_01.png │ │ ├── demoMeshShapes3d_02.png │ │ ├── demoMeshShapes3d_03.png │ │ ├── demoMeshShapes3d_04.png │ │ ├── demoMeshShapes3d_05.png │ │ ├── demoMeshShapes3d_06.png │ │ ├── demoMeshShapes3d_07.png │ │ ├── demoMeshShapes3d_08.png │ │ ├── demoMeshShapes3d_09.png │ │ ├── demoMeshShapes3d_10.png │ │ ├── demoMeshShapes3d_11.png │ │ ├── demoMeshShapes3d_12.png │ │ ├── demoMeshShapes3d_13.png │ │ ├── demoMeshShapes3d_14.png │ │ ├── demoMeshShapes3d_15.png │ │ ├── demoMeshShapes3d_16.png │ │ ├── demoMeshShapes3d_17.png │ │ ├── demoMeshShapes3d_18.png │ │ ├── demoMeshShapes3d_19.png │ │ ├── demoMeshShapes3d_20.png │ │ ├── demoMeshShapes3d_21.png │ │ ├── demoMeshShapes3d_22.png │ │ ├── demoMeshShapes3d_23.png │ │ ├── demoMeshShapes3d_24.png │ │ ├── demoMeshShapes3d_25.png │ │ ├── demoMeshShapes3d_26.png │ │ ├── demoMeshShapes3d_27.png │ │ ├── demoMeshShapes3d_28.png │ │ ├── demoMeshShapes3d_29.png │ │ ├── demoMeshShapes3d_30.png │ │ ├── demoMeshShapes3d_31.png │ │ ├── demoMeshShapes3d_32.png │ │ ├── demoMeshShapes3d_33.png │ │ ├── demoMeshShapes3d_34.png │ │ ├── demoMeshShapes3d_35.png │ │ ├── demoMeshShapes3d_36.png │ │ ├── demoMeshShapes3d_37.png │ │ ├── demoMeshShapes3d_38.png │ │ ├── demoShapes2d.html │ │ ├── demoShapes2d.png │ │ ├── demoShapes2d_01.png │ │ ├── demoShapes2d_02.png │ │ ├── demoShapes2d_03.png │ │ ├── demoShapes2d_04.png │ │ ├── demoShapes2d_05.png │ │ ├── demoShapes2d_06.png │ │ ├── demoShapes2d_07.png │ │ ├── demoShapes2d_08.png │ │ ├── demoShapes3d.html │ │ ├── demoShapes3d.png │ │ ├── demoShapes3d_01.png │ │ ├── demoShapes3d_02.png │ │ ├── demoShapes3d_03.png │ │ ├── demoShapes3d_04.png │ │ ├── demoShapes3d_05.png │ │ ├── demoShapes3d_06.png │ │ ├── demoShapes3d_07.png │ │ ├── demoShapes3d_08.png │ │ ├── demoShapes3d_09.png │ │ ├── demoShapes3d_10.png │ │ ├── demoShapes3d_11.png │ │ ├── demoShapes3d_12.png │ │ ├── demoShapes3d_13.png │ │ ├── demoShapes3d_14.png │ │ ├── demoShapes3d_15.png │ │ ├── demoShapes3d_16.png │ │ ├── demoShapes3d_17.png │ │ ├── demoShapes3d_18.png │ │ ├── demoShapes3d_19.png │ │ ├── demoShapes3d_20.png │ │ ├── demoShapes3d_21.png │ │ ├── demoShapes3d_22.png │ │ ├── demoShapes3d_23.png │ │ ├── demoShapes3d_24.png │ │ └── demoShapes3d_25.png └── imStacks │ ├── imgSlicer.png │ ├── imgSlicerSmall.png │ ├── slicerOverlayImage.png │ ├── slicerOverlayImageMenuTransform.png │ └── slicerOverlayImage_75pc.png ├── doc └── userManual │ ├── images │ ├── imFilters │ │ ├── binary │ │ │ ├── IJ-leaf-bin.tif │ │ │ ├── IJ-leaf.tif │ │ │ ├── blobs-intensity-measurements.csv │ │ │ ├── circles-bnd-inv.png │ │ │ ├── circles-boundary-inv.png │ │ │ ├── circles-convex-inv.png │ │ │ ├── circles-fillHoles-distMap-RGB.png │ │ │ ├── circles-fillHoles-inv.png │ │ │ ├── circles-fillHoles-thicknessMap-RGB.png │ │ │ ├── circles-skeleton-inv.png │ │ │ ├── distanceMaps_leaf.m │ │ │ ├── filters_binary_circles.m │ │ │ ├── ijLeaf-bin-distMap-rgb.png │ │ │ ├── ijLeaf-bin-thickMap-rgb.png │ │ │ └── ijLeaf-binInv.png │ │ ├── enhance │ │ │ ├── demo_imNormalizeBackground_rice.m │ │ │ ├── rice_backgroundCorrection.png │ │ │ ├── rice_backgroundCorrection_background.png │ │ │ ├── rice_backgroundCorrection_histograms.png │ │ │ └── rice_backgroundCorrection_segOverlay.png │ │ ├── filters │ │ │ ├── makeFilterImages.m │ │ │ ├── makeGradientFilterImages.m │ │ │ ├── riceCrop.png │ │ │ ├── riceCrop_Laplacian.png │ │ │ ├── riceCrop_boxFilter5x5.png │ │ │ ├── riceCrop_gaussianFilter2x2.png │ │ │ ├── riceCrop_gradientFilterN.png │ │ │ ├── riceCrop_gradientFilterX.png │ │ │ ├── riceCrop_gradientFilterY.png │ │ │ └── riceCrop_medianFilter5x5.png │ │ └── shape │ │ │ ├── cameraman_addBorder.png │ │ │ ├── cameraman_cropBorder.png │ │ │ ├── cameraman_flipH.png │ │ │ ├── cameraman_rot90.png │ │ │ └── makeShapeImages.m │ ├── imGeodesics │ │ ├── 36_manual1-geodiam.png │ │ ├── demoImGeodesicPath.png │ │ ├── demoImMaxGeodesicPath.png │ │ └── geodesic_Disks_Point_w34.png │ ├── imGranulo │ │ ├── coins.png │ │ ├── coins_OpDisk15.tif │ │ ├── coins_OpDisk27.tif │ │ ├── coins_OpDisk35.tif │ │ ├── coins_grOpDk30.png │ │ ├── coins_grOpDk40_sumOfGrays.png │ │ ├── granuloRice.m │ │ ├── granulo_coins.m │ │ ├── rice.png │ │ ├── rice_grOpSq20.png │ │ └── rice_grOpSq20_sumOfGrays.png │ ├── imMeasures │ │ ├── demoImRAG.png │ │ ├── demoShape-boundingBox.odg │ │ ├── demoShape-boundingBox.png │ │ ├── demoShape-circumCircle.odg │ │ ├── demoShape-circumCircle.png │ │ ├── demoShape-convexity.odg │ │ ├── demoShape-convexity.png │ │ ├── demoShape-ellipse.odg │ │ ├── demoShape-ellipse.png │ │ ├── demoShape-geodDiam-inscrDisk.odg │ │ ├── demoShape-geodDiam.odg │ │ ├── demoShape-geodDiam.png │ │ ├── demoShape-inscrDisk.odg │ │ ├── demoShape-inscrDisk.png │ │ ├── demoShape-maxFeret.odg │ │ ├── demoShape-maxFeret.png │ │ ├── demoShape-orientedBox.odg │ │ ├── demoShape-orientedBox.png │ │ ├── demoShape.odg │ │ ├── ellipsoid-angles.odg │ │ ├── ellipsoid-angles.png │ │ ├── ellipsoid-angles2.odg │ │ ├── ellipsoid-angles2.png │ │ ├── ellipsoid-angles3.odg │ │ ├── imColorHistogram_peppers.png │ │ ├── imHistogram_peppers.png │ │ ├── imJointHistogram_peppersRG_log.png │ │ └── regionBoundaryPoints.png │ ├── imMinkowski │ │ ├── binaryImage12x8RecC4.odg │ │ ├── binaryImage12x8RecC4.png │ │ ├── binaryImage12x8RecC8.odg │ │ ├── binaryImage12x8RecC8.png │ │ ├── binaryImage12x8WithDigits.odg │ │ ├── binaryImage12x8WithDigits.png │ │ ├── binaryRegions12x8C4.odg │ │ ├── binaryRegions12x8C4.png │ │ ├── binaryRegions12x8C8.odg │ │ ├── binaryRegions12x8C8.png │ │ ├── euler-number-2d-horiz.odg │ │ ├── euler-number-2d-horiz.png │ │ ├── euler-number-2d.odg │ │ ├── euler-number-2d.png │ │ ├── euler-number-3d.png │ │ ├── perimeter-measure-Crofton.odg │ │ ├── perimeter-measure-Crofton.png │ │ ├── perimeter-measure-boundaryCount.odg │ │ └── perimeter-measure-boundaryCount.png │ ├── imShapes │ │ ├── ball_R40.png │ │ ├── capsule_L60_R15_T30_P00.png │ │ ├── capsule_L60_R15_Y30_P00_R00.png │ │ ├── capsule_theta30.png │ │ ├── createDemoShapes2d.m │ │ ├── createDemoShapes3d.m │ │ ├── cube_S60_T30_P00.png │ │ ├── cube_S60_Y30_P30_R00.png │ │ ├── cuboid_A90_B40_C10_T30_P00.png │ │ ├── cuboid_A90_B40_C10_Y30_P30_R00.png │ │ ├── cylinder_L60_R10_T30_P00.png │ │ ├── cylinder_L60_R10_Y30_P00_R00.png │ │ ├── disk.png │ │ ├── egg_theta30.png │ │ ├── ellipse_theta30.png │ │ ├── ellipsoid_A50_B30_C10_Y30_P30_R00.png │ │ ├── ellipsoid_A50_B30_T10.png │ │ ├── rectangle_theta30.png │ │ ├── reuleaux_R80_T30_P00.png │ │ ├── reuleaux_R80_Y30_P00_R00.png │ │ ├── spheighth_R40_T10_P80.png │ │ ├── square_theta30.png │ │ ├── starfish_theta30.png │ │ ├── torus_A30_B10_Y30_P00_R00.png │ │ └── trefoil_theta30.png │ ├── imStacks │ │ ├── Slicer │ │ │ ├── fileMenu.png │ │ │ ├── helpMenu.png │ │ │ ├── imageMenu.png │ │ │ ├── menusSlicer.png │ │ │ ├── processMenu.png │ │ │ └── viewMenu.png │ │ ├── brainMRI_orthoSlices.png │ │ ├── brainMRI_orthoSlices3d.png │ │ ├── demoHistogramRGB.m │ │ ├── demoVizu3D_mrihead.m │ │ └── imgSlicerBrainsRGB.png │ └── samples │ │ ├── rice.png │ │ └── wheatGrain_tomo_180a_z630.tif │ ├── matImage-manual.bib │ └── matImage-manual.lyx ├── matImage ├── Contents.m ├── codingConventions.m ├── imAnalysis │ ├── Contents.m │ ├── imColorHistogram.m │ ├── imEntropy.m │ ├── imEvaluate.m │ ├── imFileInfo.m │ ├── imGrayscaleExtent.m │ ├── imHistogram.m │ ├── imHistogramDialog.m │ ├── imJointEntropy.m │ ├── imJointHistogram.m │ ├── imLineProfile.m │ ├── imLocalGradient.m │ ├── imMax.m │ ├── imMean.m │ ├── imMedian.m │ ├── imMin.m │ ├── imMode.m │ ├── imMutualInformation.m │ ├── imPhysicalExtent.m │ ├── imQuantile.m │ ├── imSize.m │ ├── imStd.m │ ├── imSum.m │ ├── imVar.m │ ├── imWeightedHistogram.m │ ├── is3DImage.m │ └── isColorImage.m ├── imFilters │ ├── Contents.m │ ├── angle2rgb.m │ ├── ball.m │ ├── bresenhamLine.m │ ├── convexImage.m │ ├── createFontImageSize7.m │ ├── createImage.m │ ├── createTile.m │ ├── createTile3d.m │ ├── cross3d.m │ ├── double2rgb.m │ ├── findContour.m │ ├── fontHelvetica07.tif │ ├── gaussianKernel3d.m │ ├── gradientKernels.m │ ├── gradientKernels3d.m │ ├── grayFilter.m │ ├── grayHist.m │ ├── imAddBorder.m │ ├── imAdjustDynamic.m │ ├── imAreaOpening.m │ ├── imAttributeOpening.m │ ├── imBoundary.m │ ├── imBoundaryIndices.m │ ├── imBoxFilter.m │ ├── imCannyEdgeDetector.m │ ├── imChainPixels.m │ ├── imCheckerBoard.m │ ├── imCheckerboardLabels.m │ ├── imConvexImage.m │ ├── imCreate.m │ ├── imCropBorder.m │ ├── imCropBox.m │ ├── imCropLabel.m │ ├── imCropOrientedBox.m │ ├── imDirectionalFilter.m │ ├── imDistance.m │ ├── imDistance3d.m │ ├── imDistanceClasses.m │ ├── imDistanceMap.m │ ├── imDownSample.m │ ├── imDrawLine.m │ ├── imDrawText.m │ ├── imEigenValues.m │ ├── imEigenValues3d.m │ ├── imFillHoles.m │ ├── imFlip.m │ ├── imGaussFilter.m │ ├── imGaussianFilter.m │ ├── imGetHue.m │ ├── imGradient.m │ ├── imGradientFilter.m │ ├── imGray12ToGray8.m │ ├── imHConcave.m │ ├── imHConvex.m │ ├── imHessian.m │ ├── imImposedWatershed.m │ ├── imKillBorderRegions.m │ ├── imKillBorders.m │ ├── imKirschFilter.m │ ├── imLUT.m │ ├── imLabelEdges.m │ ├── imLabelSkeleton.m │ ├── imLabelToValue.m │ ├── imLaplacian.m │ ├── imLargestRegion.m │ ├── imMaxEntropyThreshold.m │ ├── imMeanFilter.m │ ├── imMedianFilter.m │ ├── imMergeBands.m │ ├── imMergeCells.m │ ├── imMergeChannels.m │ ├── imMergeEnclosedRegions.m │ ├── imMergeLabels.m │ ├── imMergeRegions.m │ ├── imMorphoGradient.m │ ├── imMorphoLaplacian.m │ ├── imMultiOtsuThreshold.m │ ├── imNeighborhood.m │ ├── imNormalizeBackground.m │ ├── imOtsuThreshold.m │ ├── imOverlay.m │ ├── imPrincipalAxesAlign.m │ ├── imRescale.m │ ├── imResize.m │ ├── imRobinsonFilter.m │ ├── imRotate90.m │ ├── imSeparateParticles.m │ ├── imSkeleton.m │ ├── imSplitBands.m │ ├── imSplitChannels.m │ ├── imTangentCrop.m │ ├── imTangentCrop3d.m │ ├── imThicknessMap.m │ ├── imThumbnail.m │ ├── imTpsWarp.m │ ├── imTranspose.m │ ├── imVesselness2d.m │ ├── imdirfilter.m │ ├── immean.m │ ├── immedian.m │ ├── imrecerode.m │ ├── intline.m │ ├── label2rgb3d.m │ ├── mergeRegions.m │ ├── orientedGaussianKernel.m │ ├── orientedLaplacianKernel.m │ ├── private │ │ ├── parseAxisIndex.m │ │ └── xyz2ijk.m │ ├── removeBorderRegions.m │ ├── strelDisk.m │ ├── subsample.m │ ├── subsamplergb.m │ ├── tileIndex.m │ └── tileIndex3d.m ├── imGeodesics │ ├── Contents.m │ ├── chamferDistanceError.m │ ├── geodesicLength.m │ ├── imChamferDistance.m │ ├── imChamferDistance3d.m │ ├── imChamferDistance5x5.m │ ├── imGeodesicCenter.m │ ├── imGeodesicDiameter.m │ ├── imGeodesicDiameter3d.m │ ├── imGeodesicDistance.m │ ├── imGeodesicDistanceMap.m │ ├── imGeodesicDistanceMap3d.m │ ├── imGeodesicExtremities.m │ ├── imGeodesicPath.m │ ├── imGeodesicPropagation.m │ ├── imGeodesicRadius.m │ └── imMaxGeodesicPath.m ├── imGranulometry │ ├── Contents.m │ ├── granuloMean.m │ ├── granuloMeanSize.m │ ├── granuloStd.m │ ├── imDirectionalGranulo.m │ ├── imGranulo.m │ ├── imGranuloByRegion.m │ ├── imGranuloOrientationMap.m │ ├── imOrientedGranulo.m │ └── orientedLineStrel.m ├── imMinkowski │ ├── Contents.m │ ├── epc.m │ ├── imArea.m │ ├── imAreaDensity.m │ ├── imAreaEstimate.m │ ├── imBinaryConfigHisto.m │ ├── imEuler1d.m │ ├── imEuler1dEstimate.m │ ├── imEuler2d.m │ ├── imEuler2dDensity.m │ ├── imEuler2dEstimate.m │ ├── imEuler3d.m │ ├── imEuler3dDensity.m │ ├── imEuler3dEstimate.m │ ├── imJointSurface.m │ ├── imJointSurfaceArea.m │ ├── imLength.m │ ├── imLengthDensity.m │ ├── imLengthEstimate.m │ ├── imMeanBreadth.m │ ├── imMeanBreadthDensity.m │ ├── imMeanBreadthEstimate.m │ ├── imMeanBreadthLut.m │ ├── imPerimeter.m │ ├── imPerimeterDensity.m │ ├── imPerimeterEstimate.m │ ├── imPerimeterLut.m │ ├── imProjectedArea.m │ ├── imProjectedDiameter.m │ ├── imSurface.m │ ├── imSurfaceArea.m │ ├── imSurfaceAreaDensity.m │ ├── imSurfaceAreaEstimate.m │ ├── imSurfaceAreaLut.m │ ├── imSurfaceDensity.m │ ├── imSurfaceEstimate.m │ ├── imSurfaceLut.m │ ├── imVolume.m │ ├── imVolumeDensity.m │ ├── imVolumeEstimate.m │ ├── perimeter.m │ ├── private │ │ ├── angle3Points.m │ │ ├── angle3d.m │ │ ├── anglePoints3d.m │ │ ├── cellularComplex.m │ │ ├── complexNormalAngle.m │ │ ├── computeDirectionWeights2d4.m │ │ ├── computeDirectionWeights3d13.m │ │ ├── contributingVoxels.m │ │ ├── createLine.m │ │ ├── createPlane.m │ │ ├── createTile.m │ │ ├── crossProduct3d.m │ │ ├── grayFilter.m │ │ ├── grayHist.m │ │ ├── imBoundingBox.m │ │ ├── imFindLabels.m │ │ ├── imLUT.m │ │ ├── intersectLinePlane.m │ │ ├── intersectLineSphere.m │ │ ├── intersectPlaneLine.m │ │ ├── intersectPlanes.m │ │ ├── isCoplanar.m │ │ ├── lineAngle.m │ │ ├── medianPlane.m │ │ ├── normalizePlane.m │ │ ├── normalizeVector.m │ │ ├── normalizeVector3d.m │ │ ├── planeNormal.m │ │ ├── planePosition.m │ │ ├── projPointOnPlane.m │ │ ├── sph2cart2.m │ │ ├── sphericalAngle.m │ │ ├── sphericalCapsAreaC26.m │ │ ├── sphericalCapsAreaC6.m │ │ ├── sphericalVoronoiDomainArea.m │ │ ├── vectorNorm.m │ │ └── vectorNorm3d.m │ ├── specificIMCDetails.m │ ├── specificIntMeanCurv.m │ ├── specificIntMeanCurvDetails.m │ ├── specificSurface.m │ └── tpl.m ├── imRegions │ ├── Contents.m │ ├── imBinaryToGraph.m │ ├── imBoundaryContours.m │ ├── imBoundingBox.m │ ├── imCMoment.m │ ├── imCSMoment.m │ ├── imCentroid.m │ ├── imContourLines.m │ ├── imContours.m │ ├── imConvexity.m │ ├── imEnclosingCircle.m │ ├── imEquivalentEllipse.m │ ├── imEquivalentEllipsoid.m │ ├── imFeretDiameter.m │ ├── imFind.m │ ├── imFindLabels.m │ ├── imHuInvariants.m │ ├── imInertiaEllipse.m │ ├── imInertiaEllipsoid.m │ ├── imInscribedBall.m │ ├── imInscribedCircle.m │ ├── imMaxFeretDiameter.m │ ├── imMoment.m │ ├── imOrientedBox.m │ ├── imPrincipalAxes.m │ ├── imRAG.m │ └── imRegionFun.m ├── imShapes │ ├── Contents.m │ ├── dilatedVoronoi.m │ ├── discreteBall.m │ ├── discreteCapsule.m │ ├── discreteCapsule3d.m │ ├── discreteCube.m │ ├── discreteCuboid.m │ ├── discreteCurve.m │ ├── discreteCylinder.m │ ├── discreteDisc.m │ ├── discreteEgg.m │ ├── discreteEllipse.m │ ├── discreteEllipsoid.m │ ├── discreteHalfBall.m │ ├── discreteHalfPlane.m │ ├── discreteParabola.m │ ├── discretePoints.m │ ├── discretePolygon.m │ ├── discretePolyline.m │ ├── discreteRectangle.m │ ├── discreteReuleauxRevol.m │ ├── discreteSphereEighth.m │ ├── discreteSquare.m │ ├── discreteStarfish.m │ ├── discreteTorus.m │ ├── discreteTrefoil.m │ ├── imAWVoronoi.m │ ├── imPointsInfluenceZones.m │ ├── imPowerDiagram.m │ ├── imvoronoi2d.m │ ├── imvoronoi3d.m │ └── private │ │ ├── cart2sph2.m │ │ ├── composeTransforms3d.m │ │ ├── createRotation.m │ │ ├── createRotationOx.m │ │ ├── createRotationOy.m │ │ ├── createRotationOz.m │ │ ├── createScaling.m │ │ ├── createScaling3d.m │ │ ├── createTranslation.m │ │ ├── createTranslation3d.m │ │ ├── deg2rad.m │ │ ├── duplicateGerms.m │ │ ├── parseGridArgs.m │ │ ├── parseGridArgs3d.m │ │ ├── rad2deg.m │ │ ├── transformPoint.m │ │ ├── transformPoint3d.m │ │ └── transforms2d.m ├── imStacks │ ├── Contents.m │ ├── CropStackDialog.m │ ├── IsosurfaceOptionsDialog.m │ ├── LabelIsosurfacesOptionsDialog.m │ ├── OrthoSlicer3d.m │ ├── OrthoSlicer3dOptionsDialog.m │ ├── Slicer.m │ ├── SlicerHistogramDialog.m │ ├── createRGBStack.m │ ├── cropStack.m │ ├── flipStack.m │ ├── imMiddleSlice.m │ ├── imReadDownSampled3d.m │ ├── imReadRawData.m │ ├── imReadRegion3d.m │ ├── isColorStack.m │ ├── metaImageInfo.m │ ├── metaImageRead.m │ ├── metaImageWrite.m │ ├── orthoSlices.m │ ├── orthoSlices3d.m │ ├── private │ │ ├── computeSliceRGB.m │ │ ├── double2rgb.m │ │ ├── getStackRotate90Params.m │ │ ├── imCropLabel.m │ │ ├── imGaussianFilter.m │ │ ├── imOtsuThreshold.m │ │ ├── label2rgb3d.m │ │ ├── parseAxisIndex.m │ │ ├── parseAxisIndex_ijk.m │ │ └── xyz2ijk.m │ ├── readVgiStack.m │ ├── readVoxelMatrix.m │ ├── readstack.m │ ├── rotateStack90.m │ ├── savebinstack.m │ ├── savestack.m │ ├── showXSlice.m │ ├── showYSlice.m │ ├── showZSlice.m │ ├── slice3d.m │ ├── stackExtent.m │ ├── stackRotate90.m │ ├── stackSize.m │ ├── stackSlice.m │ └── vgiStackInfo.m ├── installMatImage.m └── mathConventions.m ├── readme.md └── tests ├── imExplore ├── images │ ├── 16c_Col0_607.lsm │ ├── densityMap1.mhd │ ├── densityMap1.vm │ ├── img_10x10_gray8_Dir.mhd │ └── img_10x10_gray8_Dir.raw ├── mhd_images │ ├── generateTestImages.m │ ├── img_Float32_rampXYZ_6x5x4_lsb.mhd │ ├── img_Float32_rampXYZ_6x5x4_lsb.raw │ ├── img_Float32_rampXYZ_6x5x4_msb.mhd │ ├── img_Float32_rampXYZ_6x5x4_msb.raw │ ├── img_Float32_rampXY_20x10_lsb.mhd │ ├── img_Float32_rampXY_20x10_lsb.raw │ ├── img_Float32_rampXY_20x10_msb.mhd │ ├── img_Float32_rampXY_20x10_msb.raw │ ├── img_Float64_rampXYZ_6x5x4_lsb.mhd │ ├── img_Float64_rampXYZ_6x5x4_lsb.raw │ ├── img_Float64_rampXYZ_6x5x4_msb.mhd │ ├── img_Float64_rampXYZ_6x5x4_msb.raw │ ├── img_Float64_rampXY_20x10_lsb.mhd │ ├── img_Float64_rampXY_20x10_lsb.raw │ ├── img_Float64_rampXY_20x10_msb.mhd │ ├── img_Float64_rampXY_20x10_msb.raw │ ├── img_Int16_rampXYZ_6x5x4_lsb.mhd │ ├── img_Int16_rampXYZ_6x5x4_lsb.raw │ ├── img_Int16_rampXYZ_6x5x4_msb.mhd │ ├── img_Int16_rampXYZ_6x5x4_msb.raw │ ├── img_Int16_rampXY_20x10_lsb.mhd │ ├── img_Int16_rampXY_20x10_lsb.raw │ ├── img_Int16_rampXY_20x10_msb.mhd │ ├── img_Int16_rampXY_20x10_msb.raw │ ├── img_Int32_rampXYZ_6x5x4_lsb.mhd │ ├── img_Int32_rampXYZ_6x5x4_lsb.raw │ ├── img_Int32_rampXYZ_6x5x4_msb.mhd │ ├── img_Int32_rampXYZ_6x5x4_msb.raw │ ├── img_Int32_rampXY_20x10_lsb.mhd │ ├── img_Int32_rampXY_20x10_lsb.raw │ ├── img_Int32_rampXY_20x10_msb.mhd │ ├── img_Int32_rampXY_20x10_msb.raw │ ├── img_UInt16_rampXYZ_6x5x4_lsb.mhd │ ├── img_UInt16_rampXYZ_6x5x4_lsb.raw │ ├── img_UInt16_rampXYZ_6x5x4_msb.mhd │ ├── img_UInt16_rampXYZ_6x5x4_msb.raw │ ├── img_UInt16_rampXY_20x10_lsb.mhd │ ├── img_UInt16_rampXY_20x10_lsb.raw │ ├── img_UInt16_rampXY_20x10_msb.mhd │ ├── img_UInt16_rampXY_20x10_msb.raw │ ├── img_UInt8_rampXYZ_6x5x4.mhd │ ├── img_UInt8_rampXYZ_6x5x4.raw │ ├── img_UInt8_rampXYZ_6x5x4_Size123.mhd │ ├── img_UInt8_rampXYZ_6x5x4_Spacing123.mhd │ ├── img_UInt8_rampXY_20x10.mhd │ ├── img_UInt8_rampXY_20x10.raw │ ├── img_rgb8_peppers.mhd │ └── img_rgb8_peppers.raw ├── mriOverlay.tif ├── mriOverlay │ ├── mriOvr-000.tif │ ├── mriOvr-001.tif │ ├── mriOvr-002.tif │ ├── mriOvr-003.tif │ ├── mriOvr-004.tif │ ├── mriOvr-005.tif │ ├── mriOvr-006.tif │ ├── mriOvr-007.tif │ ├── mriOvr-008.tif │ ├── mriOvr-009.tif │ ├── mriOvr-010.tif │ ├── mriOvr-011.tif │ ├── mriOvr-012.tif │ ├── mriOvr-013.tif │ ├── mriOvr-014.tif │ ├── mriOvr-015.tif │ ├── mriOvr-016.tif │ ├── mriOvr-017.tif │ ├── mriOvr-018.tif │ ├── mriOvr-019.tif │ ├── mriOvr-020.tif │ ├── mriOvr-021.tif │ ├── mriOvr-022.tif │ ├── mriOvr-023.tif │ ├── mriOvr-024.tif │ ├── mriOvr-025.tif │ └── mriOvr-026.tif ├── ratBrainMriSlices │ ├── BRNOR39e5p1-000.tif │ ├── BRNOR39e5p1-001.tif │ ├── BRNOR39e5p1-002.tif │ ├── BRNOR39e5p1-003.tif │ ├── BRNOR39e5p1-004.tif │ ├── BRNOR39e5p1-005.tif │ ├── BRNOR39e5p1-006.tif │ ├── BRNOR39e5p1-007.tif │ ├── BRNOR39e5p1-008.tif │ ├── BRNOR39e5p1-009.tif │ ├── BRNOR39e5p1-010.tif │ ├── BRNOR39e5p1-011.tif │ ├── BRNOR39e5p1-012.tif │ ├── BRNOR39e5p1-013.tif │ ├── BRNOR39e5p1-014.tif │ ├── BRNOR39e5p1-015.tif │ ├── BRNOR39e5p1-016.tif │ ├── BRNOR39e5p1-017.tif │ ├── BRNOR39e5p1-018.tif │ ├── BRNOR39e5p1-019.tif │ ├── BRNOR39e5p1-020.tif │ ├── BRNOR39e5p1-021.tif │ ├── BRNOR39e5p1-022.tif │ ├── BRNOR39e5p1-023.tif │ ├── BRNOR39e5p1-024.tif │ ├── BRNOR39e5p1-025.tif │ ├── BRNOR39e5p1-026.tif │ ├── BRNOR39e5p1-027.tif │ ├── BRNOR39e5p1-028.tif │ ├── BRNOR39e5p1-029.tif │ ├── BRNOR39e5p1-030.tif │ ├── BRNOR39e5p1-031.tif │ ├── BRNOR39e5p1-032.tif │ ├── BRNOR39e5p1-033.tif │ ├── BRNOR39e5p1-034.tif │ ├── BRNOR39e5p1-035.tif │ ├── BRNOR39e5p1-036.tif │ ├── BRNOR39e5p1-037.tif │ ├── BRNOR39e5p1-038.tif │ ├── BRNOR39e5p1-039.tif │ ├── BRNOR39e5p1-040.tif │ ├── BRNOR39e5p1-041.tif │ ├── BRNOR39e5p1-042.tif │ ├── BRNOR39e5p1-043.tif │ ├── BRNOR39e5p1-044.tif │ ├── BRNOR39e5p1-045.tif │ ├── BRNOR39e5p1-046.tif │ ├── BRNOR39e5p1-047.tif │ ├── BRNOR39e5p1-048.tif │ ├── BRNOR39e5p1-049.tif │ ├── BRNOR39e5p1-050.tif │ ├── BRNOR39e5p1-051.tif │ ├── BRNOR39e5p1-052.tif │ ├── BRNOR39e5p1-053.tif │ ├── BRNOR39e5p1-054.tif │ ├── BRNOR39e5p1-055.tif │ ├── BRNOR39e5p1-056.tif │ ├── BRNOR39e5p1-057.tif │ ├── BRNOR39e5p1-058.tif │ ├── BRNOR39e5p1-059.tif │ ├── BRNOR39e5p1-060.tif │ ├── BRNOR39e5p1-061.tif │ ├── BRNOR39e5p1-062.tif │ ├── BRNOR39e5p1-063.tif │ ├── BRNOR39e5p1-064.tif │ ├── BRNOR39e5p1-065.tif │ ├── BRNOR39e5p1-066.tif │ ├── BRNOR39e5p1-067.tif │ ├── BRNOR39e5p1-068.tif │ ├── BRNOR39e5p1-069.tif │ ├── BRNOR39e5p1-070.tif │ ├── BRNOR39e5p1-071.tif │ ├── BRNOR39e5p1-072.tif │ ├── BRNOR39e5p1-073.tif │ ├── BRNOR39e5p1-074.tif │ ├── BRNOR39e5p1-075.tif │ ├── BRNOR39e5p1-076.tif │ ├── BRNOR39e5p1-077.tif │ ├── BRNOR39e5p1-078.tif │ ├── BRNOR39e5p1-079.tif │ ├── BRNOR39e5p1-080.tif │ ├── BRNOR39e5p1-081.tif │ ├── BRNOR39e5p1-082.tif │ ├── BRNOR39e5p1-083.tif │ ├── BRNOR39e5p1-084.tif │ ├── BRNOR39e5p1-085.tif │ ├── BRNOR39e5p1-086.tif │ ├── BRNOR39e5p1-087.tif │ ├── BRNOR39e5p1-088.tif │ ├── BRNOR39e5p1-089.tif │ ├── BRNOR39e5p1-090.tif │ ├── BRNOR39e5p1-091.tif │ ├── BRNOR39e5p1-092.tif │ ├── BRNOR39e5p1-093.tif │ ├── BRNOR39e5p1-094.tif │ ├── BRNOR39e5p1-095.tif │ ├── BRNOR39e5p1List.mhd │ ├── BRNOR39e5p1Pattern.mhd │ └── BRNOR39e5p1stack.tif ├── test_imHistogram.m ├── test_metaImageInfo.m ├── test_metaImageRead.m ├── test_metaImageWrite.m ├── test_readVoxelMatrix.m ├── test_readstack.m ├── test_rotateStack90.m ├── test_savestack.m ├── test_stackRotate90.m ├── test_stackSize.m └── test_stackSlice.m ├── imFilters ├── test_gaussianKernel3d.m ├── test_imAddBorder.m ├── test_imAdjustDynamic.m ├── test_imBoxFilter.m ├── test_imConvexImage.m ├── test_imCropBorder.m ├── test_imDistance.m ├── test_imDistanceMap.m ├── test_imDownSample.m ├── test_imMergeChannels.m ├── test_imMultiOtsuThreshold.m └── test_imOverlay.m ├── imGeodesics ├── test_imGeodesicDiameter.m └── test_imGeodesicDistanceMap.m ├── imGranulometry └── test_imGranulo.m ├── imMinkowski ├── test_imArea.m ├── test_imAreaEstimate.m ├── test_imEuler1d.m ├── test_imEuler1dEstimate.m ├── test_imEuler2d.m ├── test_imEuler2dEstimate.m ├── test_imEuler3d.m ├── test_imLength.m ├── test_imMeanBreadth.m ├── test_imPerimeter.m ├── test_imPerimeterDensity.m ├── test_imSurfaceArea.m ├── test_imSurfaceAreaLut.m └── test_imVolume.m ├── imQuantify ├── files │ └── ellipsoid_Center30x27x25_Size20x12x8_Orient40x30x20.tif ├── test_imBoundingBox.m ├── test_imEquivalentEllipsoid.m ├── test_imFeretDiameter.m ├── test_imInscribedCircle.m ├── test_imOrientedBox.m └── test_imRAG.m └── runAllTests.m /demos/imFilters/demoImBoxFilter.m: -------------------------------------------------------------------------------- 1 | %DEMOIMBOXFILTER One-line description here, please. 2 | % 3 | % output = demoImBoxFilter(input) 4 | % 5 | % Example 6 | % demoImBoxFilter 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inra.fr 14 | % Created: 2018-11-22, using Matlab 8.6.0.267246 (R2015b) 15 | % Copyright 2018 INRA - Cepia Software Platform. 16 | 17 | % reference image of fixed size 18 | img = zeros([500, 500], 'double'); 19 | img(200:300, 200:300) = 255; 20 | 21 | % kernel sizes 22 | kernelSizes = 3:2:191; 23 | nSizes = length(kernelSizes); 24 | 25 | resRef = zeros(1, nSizes); 26 | resBox = zeros(1, nSizes); 27 | 28 | for i = 1:nSizes 29 | disp(sprintf('iter %d/%d', i, nSizes)); 30 | 31 | dim = kernelSizes(i); 32 | kernel = ones([dim dim]) / (dim*dim); 33 | tic; resf = imfilter(img, kernel); resRef(i) = toc; 34 | 35 | tic; resf2 = imBoxFilter(img, [dim dim]); resBox(i) = toc; 36 | end 37 | 38 | figure; hold on; 39 | plot(kernelSizes, resRef, 'k'); 40 | plot(kernelSizes, resBox, 'b'); 41 | legend({'imfilter', 'imBoxFilter'}); 42 | -------------------------------------------------------------------------------- /demos/imFilters/demoImBoxFilter_3d.m: -------------------------------------------------------------------------------- 1 | %DEMOIMBOXFILTER One-line description here, please. 2 | % 3 | % output = demoImBoxFilter(input) 4 | % 5 | % Example 6 | % demoImBoxFilter 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inra.fr 14 | % Created: 2018-11-22, using Matlab 8.6.0.267246 (R2015b) 15 | % Copyright 2018 INRA - Cepia Software Platform. 16 | 17 | % reference image of fixed size 18 | img = zeros([150 150 150], 'double'); 19 | img(150:100, 150:100, 150:100) = 255; 20 | 21 | % kernel sizes 22 | kernelSizes = 3:4:25; 23 | nSizes = length(kernelSizes); 24 | 25 | resRef = zeros(1, nSizes); 26 | resBox = zeros(1, nSizes); 27 | 28 | for i = 1:nSizes 29 | disp(sprintf('iter %d/%d', i, nSizes)); 30 | 31 | dim = kernelSizes(i); 32 | kernel = ones([dim dim dim]) / (dim*dim*dim); 33 | tic; resf = imfilter(img, kernel); resRef(i) = toc; 34 | 35 | tic; resf2 = imBoxFilter(img, [dim dim dim]); resBox(i) = toc; 36 | end 37 | 38 | figure; hold on; 39 | plot(kernelSizes, resRef, 'k'); 40 | plot(kernelSizes, resBox, 'b'); 41 | legend({'imfilter', 'imBoxFilter'}); 42 | -------------------------------------------------------------------------------- /demos/imFilters/double2rgbDemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/double2rgbDemo.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoImBoxFilter_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoImBoxFilter_3d.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoImBoxFilter_3d_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoImBoxFilter_3d_01.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_01.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_02.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_03.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_04.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_05.png -------------------------------------------------------------------------------- /demos/imFilters/html/demoWatSobel_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/html/demoWatSobel_06.png -------------------------------------------------------------------------------- /demos/imFilters/imOverlayHead3D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imFilters/imOverlayHead3D.png -------------------------------------------------------------------------------- /demos/imGeodesics/demoImGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/demoImGeodesicPath.png -------------------------------------------------------------------------------- /demos/imGeodesics/demoImMaxGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/demoImMaxGeodesicPath.png -------------------------------------------------------------------------------- /demos/imGeodesics/geodesic_Disks_Point_w34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/geodesic_Disks_Point_w34.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicDistanceMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicDistanceMap.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicDistanceMap_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicDistanceMap_01.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicDistanceMap_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicDistanceMap_02.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicDistanceMap_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicDistanceMap_03.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicDistanceMap_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicDistanceMap_04.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicPath.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicPath_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicPath_01.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicPath_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicPath_02.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImGeodesicPath_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImGeodesicPath_03.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImMaxGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImMaxGeodesicPath.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImMaxGeodesicPath_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImMaxGeodesicPath_01.png -------------------------------------------------------------------------------- /demos/imGeodesics/html/demoImMaxGeodesicPath_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imGeodesics/html/demoImMaxGeodesicPath_02.png -------------------------------------------------------------------------------- /demos/imMeasures/demoImRAG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/demoImRAG.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse_01.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse_02.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse_03.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse_04.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImEquivalentEllipse_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImEquivalentEllipse_05.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImJointHistogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImJointHistogram.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImJointHistogram_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImJointHistogram_01.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImJointHistogram_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImJointHistogram_02.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImJointHistogram_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImJointHistogram_03.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImJointHistogram_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImJointHistogram_04.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter_01.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter_02.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter_03.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter_04.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImMaxFeretDiameter_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImMaxFeretDiameter_05.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox_01.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox_02.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox_03.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox_04.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImOrientedBox_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImOrientedBox_05.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImRAG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImRAG.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImRAG_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImRAG_01.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImRAG_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImRAG_02.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImRAG_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImRAG_03.png -------------------------------------------------------------------------------- /demos/imMeasures/html/demoImRAG_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/html/demoImRAG_04.png -------------------------------------------------------------------------------- /demos/imMeasures/imColorHistogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/imColorHistogram.png -------------------------------------------------------------------------------- /demos/imMeasures/imOrientedBoxDemo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/imOrientedBoxDemo.png -------------------------------------------------------------------------------- /demos/imMeasures/img1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/img1.bmp -------------------------------------------------------------------------------- /demos/imMeasures/img2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/img2.bmp -------------------------------------------------------------------------------- /demos/imMeasures/res-rigid2.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imMeasures/res-rigid2.tif -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_01.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_02.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_03.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_04.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_05.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_06.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_07.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_08.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_09.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_10.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_11.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_12.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_13.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_14.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_15.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_16.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_17.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_18.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_19.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_20.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_21.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_22.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_23.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_24.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_25.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_26.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_27.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_28.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_29.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_30.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_31.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_32.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_33.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_34.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_35.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_36.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_37.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoMeshShapes3d_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoMeshShapes3d_38.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_01.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_02.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_03.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_04.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_05.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_06.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_07.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes2d_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes2d_08.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_01.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_02.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_03.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_04.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_05.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_06.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_07.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_08.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_09.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_10.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_11.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_12.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_13.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_14.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_15.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_16.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_17.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_18.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_19.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_20.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_21.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_22.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_23.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_24.png -------------------------------------------------------------------------------- /demos/imShapes/html/demoShapes3d_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imShapes/html/demoShapes3d_25.png -------------------------------------------------------------------------------- /demos/imStacks/imgSlicer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imStacks/imgSlicer.png -------------------------------------------------------------------------------- /demos/imStacks/imgSlicerSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imStacks/imgSlicerSmall.png -------------------------------------------------------------------------------- /demos/imStacks/slicerOverlayImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imStacks/slicerOverlayImage.png -------------------------------------------------------------------------------- /demos/imStacks/slicerOverlayImageMenuTransform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imStacks/slicerOverlayImageMenuTransform.png -------------------------------------------------------------------------------- /demos/imStacks/slicerOverlayImage_75pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/demos/imStacks/slicerOverlayImage_75pc.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/IJ-leaf-bin.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/IJ-leaf-bin.tif -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/IJ-leaf.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/IJ-leaf.tif -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-bnd-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-bnd-inv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-boundary-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-boundary-inv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-convex-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-convex-inv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-fillHoles-distMap-RGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-fillHoles-distMap-RGB.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-fillHoles-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-fillHoles-inv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-fillHoles-thicknessMap-RGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-fillHoles-thicknessMap-RGB.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/circles-skeleton-inv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/circles-skeleton-inv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/distanceMaps_leaf.m: -------------------------------------------------------------------------------- 1 | %DISTANCEMAPS_LEAF One-line description here, please. 2 | % 3 | % output = distanceMaps_leaf(input) 4 | % 5 | % Example 6 | % distanceMaps_leaf 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2021-05-14, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2021 INRAE. 17 | 18 | % read data 19 | img = imread('IJ-leaf-bin.tif'); 20 | imwrite(255 - img, 'ijLeaf-binInv.png', 'png'); 21 | 22 | % compute distance map 23 | distMap = imDistanceMap(img); 24 | 25 | % save RGB display 26 | rgb = double2rgb(distMap, [1 1 1; parula]); 27 | imwrite(rgb, 'ijLeaf-bin-distMap-rgb.png', 'png'); 28 | 29 | % compute thickness map 30 | thMap = imThicknessMap(img); 31 | 32 | % save RGB display 33 | rgb = double2rgb(thMap, [1 1 1; parula]); 34 | imwrite(rgb, 'ijLeaf-bin-thickMap-rgb.png', 'png'); 35 | -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/filters_binary_circles.m: -------------------------------------------------------------------------------- 1 | %FILTERS_BINARY_DISCS One-line description here, please. 2 | % 3 | % output = filters_binary_discs(input) 4 | % 5 | % Example 6 | % filters_binary_discs 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2020-03-23, using Matlab 9.7.0.1247435 (R2019b) Update 2 16 | % Copyright 2020 INRAE. 17 | 18 | img = imread('circles.png'); 19 | 20 | bnd = imBoundary(img); 21 | imwrite(uint8(~bnd) * 255, 'circles-boundary-inv.png'); 22 | 23 | imgFH = imFillHoles(img); 24 | imwrite(uint8(~imgFH) * 255, 'circles-fillHoles-inv.png'); 25 | 26 | skel = imSkeleton(img); 27 | imwrite(uint8(~skel) * 255, 'circles-skeleton-inv.png'); 28 | 29 | cvx = imConvexImage(img); 30 | imwrite(uint8(~cvx) * 255, 'circles-convex-inv.png'); 31 | 32 | distMap = imDistanceMap(imgFH); 33 | rgb = double2rgb(distMap, [1 1 1; parula]); 34 | imwrite(rgb, 'circles-fillHoles-distMap-RGB.png'); 35 | 36 | thMap = imThicknessMap(imgFH); 37 | rgb = double2rgb(thMap, [1 1 1; parula]); 38 | imwrite(rgb, 'circles-fillHoles-thicknessMap-RGB.png'); 39 | -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/ijLeaf-bin-distMap-rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/ijLeaf-bin-distMap-rgb.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/ijLeaf-bin-thickMap-rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/ijLeaf-bin-thickMap-rgb.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/binary/ijLeaf-binInv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/binary/ijLeaf-binInv.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/enhance/demo_imNormalizeBackground_rice.m: -------------------------------------------------------------------------------- 1 | %DEMO_IMNORMALIZEBACKGROUND_RICE One-line description here, please. 2 | % 3 | % output = demo_imNormalizeBackground_rice(input) 4 | % 5 | % Example 6 | % demo_imNormalizeBackground_rice 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2023-10-31, using Matlab 23.2.0.2409890 (R2023b) Update 3 16 | % Copyright 2023 INRAE. 17 | 18 | img = imread('rice.png'); 19 | [img2, bg] = imNormalizeBackground(img, img>150); 20 | figure; 21 | subplot(2,1,1); imHistogram(img); title('Original'); 22 | subplot(2,1,2); imHistogram(img2); title('Corrected'); 23 | print(gcf, 'rice_backgroundCorrection_histograms.png', '-dpng'); 24 | imwrite(img2, 'rice_backgroundCorrection.png'); 25 | imwrite(bg, 'rice_backgroundCorrection_background.png'); 26 | 27 | % binarise corrected image 28 | bin = img2 > imOtsuThreshold(img2); 29 | ovr = imOverlay(img, imBoundary(bin)); 30 | figure; imshow(ovr); 31 | imwrite(ovr, 'rice_backgroundCorrection_segOverlay.png'); 32 | -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/enhance/rice_backgroundCorrection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/enhance/rice_backgroundCorrection.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_background.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_histograms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_histograms.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_segOverlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/enhance/rice_backgroundCorrection_segOverlay.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/makeFilterImages.m: -------------------------------------------------------------------------------- 1 | %MAKEFILTERIMAGES One-line description here, please. 2 | % 3 | % output = makeFilterImages(input) 4 | % 5 | % Example 6 | % makeFilterImages 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2021-07-09, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2021 INRAE. 17 | 18 | img = imread('rice.png'); 19 | 20 | img2 = img(81:180, 81:180); 21 | imwrite(img2, 'riceCrop.png'); 22 | 23 | img2f1 = imBoxFilter(img2, [5 5]); 24 | imwrite(img2f1, 'riceCrop_boxFilter5x5.png'); 25 | 26 | img2f2 = imGaussianFilter(img2, [2 2]); 27 | imwrite(img2f2, 'riceCrop_gaussianFilter2x2.png'); 28 | 29 | img2f3 = imMedianFilter(img2, [5 5]); 30 | imwrite(img2f3, 'riceCrop_medianFilter5x5.png'); 31 | -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/makeGradientFilterImages.m: -------------------------------------------------------------------------------- 1 | %MAKEFILTERIMAGES One-line description here, please. 2 | % 3 | % output = makeFilterImages(input) 4 | % 5 | % Example 6 | % makeFilterImages 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2021-07-09, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2021 INRAE. 17 | 18 | img = imread('rice.png'); 19 | 20 | img2 = img(81:180, 81:180); 21 | imwrite(img2, 'riceCrop.png'); 22 | 23 | [img2gx, img2gy] = imGradientFilter(img2); 24 | imwrite(uint8(img2gx * 2 + 127), 'riceCrop_gradientFilterX.png'); 25 | imwrite(uint8(img2gy * 2 + 127), 'riceCrop_gradientFilterY.png'); 26 | 27 | img2gn = imGradientFilter(img2); 28 | imwrite(uint8(img2gn * 5), 'riceCrop_gradientFilterN.png'); 29 | 30 | img2Lap = imLaplacian(img2); 31 | imwrite(uint8(img2Lap * 2 + 127), 'riceCrop_Laplacian.png'); 32 | -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_Laplacian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_Laplacian.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_boxFilter5x5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_boxFilter5x5.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_gaussianFilter2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_gaussianFilter2x2.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_gradientFilterN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_gradientFilterN.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_gradientFilterX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_gradientFilterX.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_gradientFilterY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_gradientFilterY.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/filters/riceCrop_medianFilter5x5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/filters/riceCrop_medianFilter5x5.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/shape/cameraman_addBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/shape/cameraman_addBorder.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/shape/cameraman_cropBorder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/shape/cameraman_cropBorder.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/shape/cameraman_flipH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/shape/cameraman_flipH.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/shape/cameraman_rot90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imFilters/shape/cameraman_rot90.png -------------------------------------------------------------------------------- /doc/userManual/images/imFilters/shape/makeShapeImages.m: -------------------------------------------------------------------------------- 1 | %MAKESHAPEIMAGES One-line description here, please. 2 | % 3 | % output = makeShapeImages(input) 4 | % 5 | % Example 6 | % makeShapeImages 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inrae.fr 14 | % INRAE - BIA Research Unit - BIBS Platform (Nantes) 15 | % Created: 2021-07-09, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2021 INRAE. 17 | 18 | % read data 19 | img = imread('cameraman.tif'); 20 | 21 | % flipH 22 | imgFlip = imFlip(img, 1); 23 | imwrite(imgFlip, 'cameraman_flipH.png', 'png'); 24 | 25 | % rotate 90 26 | imgRot90 = imRotate90(img); 27 | imwrite(imgRot90, 'cameraman_rot90.png', 'png'); 28 | 29 | % crop border 30 | imgCropBorder = imCropBorder(img, [20 40 30 50]); 31 | imwrite(imgCropBorder, 'cameraman_cropBorder.png', 'png'); 32 | 33 | % add border 34 | imgAddBorder = imAddBorder(img, [20 40 30 50]); 35 | imwrite(imgAddBorder, 'cameraman_addBorder.png', 'png'); 36 | 37 | -------------------------------------------------------------------------------- /doc/userManual/images/imGeodesics/36_manual1-geodiam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGeodesics/36_manual1-geodiam.png -------------------------------------------------------------------------------- /doc/userManual/images/imGeodesics/demoImGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGeodesics/demoImGeodesicPath.png -------------------------------------------------------------------------------- /doc/userManual/images/imGeodesics/demoImMaxGeodesicPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGeodesics/demoImMaxGeodesicPath.png -------------------------------------------------------------------------------- /doc/userManual/images/imGeodesics/geodesic_Disks_Point_w34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGeodesics/geodesic_Disks_Point_w34.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins_OpDisk15.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins_OpDisk15.tif -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins_OpDisk27.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins_OpDisk27.tif -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins_OpDisk35.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins_OpDisk35.tif -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins_grOpDk30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins_grOpDk30.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/coins_grOpDk40_sumOfGrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/coins_grOpDk40_sumOfGrays.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/rice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/rice.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/rice_grOpSq20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/rice_grOpSq20.png -------------------------------------------------------------------------------- /doc/userManual/images/imGranulo/rice_grOpSq20_sumOfGrays.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imGranulo/rice_grOpSq20_sumOfGrays.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoImRAG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoImRAG.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-boundingBox.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-boundingBox.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-boundingBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-boundingBox.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-circumCircle.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-circumCircle.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-circumCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-circumCircle.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-convexity.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-convexity.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-convexity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-convexity.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-ellipse.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-ellipse.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-ellipse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-ellipse.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-geodDiam-inscrDisk.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-geodDiam-inscrDisk.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-geodDiam.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-geodDiam.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-geodDiam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-geodDiam.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-inscrDisk.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-inscrDisk.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-inscrDisk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-inscrDisk.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-maxFeret.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-maxFeret.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-maxFeret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-maxFeret.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-orientedBox.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-orientedBox.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape-orientedBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape-orientedBox.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/demoShape.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/demoShape.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/ellipsoid-angles.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/ellipsoid-angles.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/ellipsoid-angles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/ellipsoid-angles.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/ellipsoid-angles2.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/ellipsoid-angles2.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/ellipsoid-angles2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/ellipsoid-angles2.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/ellipsoid-angles3.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/ellipsoid-angles3.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/imColorHistogram_peppers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/imColorHistogram_peppers.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/imHistogram_peppers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/imHistogram_peppers.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/imJointHistogram_peppersRG_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/imJointHistogram_peppersRG_log.png -------------------------------------------------------------------------------- /doc/userManual/images/imMeasures/regionBoundaryPoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMeasures/regionBoundaryPoints.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8RecC4.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8RecC4.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8RecC4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8RecC4.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8RecC8.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8RecC8.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8RecC8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8RecC8.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8WithDigits.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8WithDigits.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryImage12x8WithDigits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryImage12x8WithDigits.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryRegions12x8C4.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryRegions12x8C4.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryRegions12x8C4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryRegions12x8C4.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryRegions12x8C8.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryRegions12x8C8.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/binaryRegions12x8C8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/binaryRegions12x8C8.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/euler-number-2d-horiz.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/euler-number-2d-horiz.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/euler-number-2d-horiz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/euler-number-2d-horiz.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/euler-number-2d.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/euler-number-2d.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/euler-number-2d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/euler-number-2d.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/euler-number-3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/euler-number-3d.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/perimeter-measure-Crofton.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/perimeter-measure-Crofton.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/perimeter-measure-Crofton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/perimeter-measure-Crofton.png -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/perimeter-measure-boundaryCount.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/perimeter-measure-boundaryCount.odg -------------------------------------------------------------------------------- /doc/userManual/images/imMinkowski/perimeter-measure-boundaryCount.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imMinkowski/perimeter-measure-boundaryCount.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/ball_R40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/ball_R40.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/capsule_L60_R15_T30_P00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/capsule_L60_R15_T30_P00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/capsule_L60_R15_Y30_P00_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/capsule_L60_R15_Y30_P00_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/capsule_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/capsule_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cube_S60_T30_P00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cube_S60_T30_P00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cube_S60_Y30_P30_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cube_S60_Y30_P30_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cuboid_A90_B40_C10_T30_P00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cuboid_A90_B40_C10_T30_P00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cuboid_A90_B40_C10_Y30_P30_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cuboid_A90_B40_C10_Y30_P30_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cylinder_L60_R10_T30_P00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cylinder_L60_R10_T30_P00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/cylinder_L60_R10_Y30_P00_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/cylinder_L60_R10_Y30_P00_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/disk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/disk.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/egg_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/egg_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/ellipse_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/ellipse_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/ellipsoid_A50_B30_C10_Y30_P30_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/ellipsoid_A50_B30_C10_Y30_P30_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/ellipsoid_A50_B30_T10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/ellipsoid_A50_B30_T10.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/rectangle_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/rectangle_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/reuleaux_R80_T30_P00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/reuleaux_R80_T30_P00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/reuleaux_R80_Y30_P00_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/reuleaux_R80_Y30_P00_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/spheighth_R40_T10_P80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/spheighth_R40_T10_P80.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/square_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/square_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/starfish_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/starfish_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/torus_A30_B10_Y30_P00_R00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/torus_A30_B10_Y30_P00_R00.png -------------------------------------------------------------------------------- /doc/userManual/images/imShapes/trefoil_theta30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imShapes/trefoil_theta30.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/fileMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/fileMenu.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/helpMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/helpMenu.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/imageMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/imageMenu.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/menusSlicer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/menusSlicer.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/processMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/processMenu.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/Slicer/viewMenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/Slicer/viewMenu.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/brainMRI_orthoSlices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/brainMRI_orthoSlices.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/brainMRI_orthoSlices3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/brainMRI_orthoSlices3d.png -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/demoHistogramRGB.m: -------------------------------------------------------------------------------- 1 | %DEMOHISTOGRAMRGB One-line description here, please. 2 | % 3 | % output = demoHistogramRGB(input) 4 | % 5 | % Example 6 | % demoHistogramRGB 7 | % 8 | % See also 9 | % 10 | 11 | % ------ 12 | % Author: David Legland 13 | % e-mail: david.legland@inra.fr 14 | % Created: 2018-10-08, using Matlab 9.4.0.813654 (R2018a) 15 | % Copyright 2018 INRA - Cepia Software Platform. 16 | 17 | %% Read Color image 18 | 19 | img = Image.read('peppers.png'); 20 | figure; show(img); 21 | print(gcf, 'peppers-show.png', '-dpng'); 22 | 23 | 24 | %% Compute histogram 25 | 26 | figure; histogram(img); 27 | print(gcf, 'peppers-histogram.png', '-dpng'); 28 | 29 | %% Compute line profile 30 | 31 | lineProfile(img, [150 50], [150 300]); 32 | print(gcf, 'peppers-lineProfile.png', '-dpng'); 33 | 34 | % overlay line profile on original image 35 | img(149:151, 50:300, :) = 255; 36 | write(img, 'peppers-lineOverlay.png'); -------------------------------------------------------------------------------- /doc/userManual/images/imStacks/imgSlicerBrainsRGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/imStacks/imgSlicerBrainsRGB.png -------------------------------------------------------------------------------- /doc/userManual/images/samples/rice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/samples/rice.png -------------------------------------------------------------------------------- /doc/userManual/images/samples/wheatGrain_tomo_180a_z630.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/doc/userManual/images/samples/wheatGrain_tomo_180a_z630.tif -------------------------------------------------------------------------------- /matImage/imAnalysis/imFileInfo.m: -------------------------------------------------------------------------------- 1 | function info = imFileInfo(fileName) 2 | %IMFILEINFO Generalization of the imfinfo function 3 | % 4 | % INFO = imFileInfo(FILENAME) 5 | % 6 | % Example 7 | % info = imFileInfo('brainMRI.hdr'); 8 | % 9 | % See also 10 | % imfinfo, analyze75info, metaImageInfo, vgiStackInfo 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2018-12-17, using Matlab 9.5.0.944444 (R2018b) 16 | % Copyright 2018 INRA - Cepia Software Platform. 17 | 18 | % extract extension 19 | [path, name, ext] = fileparts(fileName); %#ok 20 | 21 | % remove dot 22 | ext(1) = []; 23 | 24 | switch ext 25 | case {'tif', 'png', 'jpg', 'bmp'} 26 | info = imfinfo(fileName); 27 | 28 | case 'hdr' 29 | info = analyze75info(fileName); 30 | 31 | case {'mhd', 'mha'} 32 | info = metaImageInfo(fileName); 33 | 34 | case {'vgi'} 35 | info = vgiStackInfo(fileName); 36 | 37 | otherwise 38 | error(['Can not manage file ending by ' ext]); 39 | end 40 | 41 | -------------------------------------------------------------------------------- /matImage/imAnalysis/imQuantile.m: -------------------------------------------------------------------------------- 1 | function res = imQuantile(img, q, varargin) 2 | %IMQUANTILE Computes value that threshold a given proportion of pixels 3 | % 4 | % RES = imQuantile(IMG, Q) 5 | % 6 | % Example 7 | % % compute the median value in an imag by two different ways 8 | % img = imread('cameraman.tif'); 9 | % imQuantile(img, .5) 10 | % ans = 11 | % 144 12 | % imMedian(img) 13 | % ans = 14 | % 144 15 | % 16 | % See also 17 | % imHistogram, imMedian 18 | 19 | % ------ 20 | % Author: David Legland 21 | % e-mail: david.legland@grignon.inra.fr 22 | % Created: 2014-05-26, using Matlab 7.9.0.529 (R2009b) 23 | % Copyright 2014 INRA - Cepia Software Platform. 24 | 25 | 26 | if q < 0 || q > 1 27 | error('Requires a quantile value between 0 and 1'); 28 | end 29 | 30 | % compute cumulative histogram 31 | [h, x] = imHistogram(img); 32 | cs = cumsum(h); 33 | 34 | % iterate for all quantiles to compute 35 | res = zeros(size(q)); 36 | for i = 1:length(q) 37 | % find index of quantile 38 | qi = sum(h) * q(i); 39 | ind = find(cs > qi, 1, 'first'); 40 | 41 | % coonvert to grey level 42 | res(i) = x(ind); 43 | end -------------------------------------------------------------------------------- /matImage/imFilters/convexImage.m: -------------------------------------------------------------------------------- 1 | function res = convexImage(img, varargin) 2 | %CONVEXIMAGE Compute smallest convex image containing the original pixels 3 | % 4 | % IMG2 = convexImage(IMG); 5 | % Returns an image with same dimension as IMG, but the structure is 6 | % convex. 7 | % 8 | % Deprecated: replaced by 'imConvexify' 9 | % 10 | % Requires the 'geom2d' library. 11 | % 12 | 13 | % --------- 14 | % author : David Legland 15 | % INRA - TPV URPOI - BIA IMASTE 16 | % created the 28/06/2004. 17 | % 18 | 19 | % HISTORY 20 | % 02/07/2004 process 3D images which contains pixels only on a single 21 | % slice (was not possible before). 22 | % 21/08/2006 replace convexHull by minConvexHull for 3D case, add psb 23 | % to specify precision, and call method 'faceNormal' instead of 24 | % computing normals manually. 25 | % 12/10/2007 clean up code 26 | 27 | warning('imael:deprecated', ... 28 | 'function ''convexImage'' is deprecated, use ''imConvexImage'' instead'); 29 | 30 | % initialize with image 31 | res = imConvexImage(img); 32 | -------------------------------------------------------------------------------- /matImage/imFilters/createFontImageSize7.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imFilters/createFontImageSize7.m -------------------------------------------------------------------------------- /matImage/imFilters/createTile.m: -------------------------------------------------------------------------------- 1 | function tile = createTile(v) 2 | % Create a 2-by-2 binary configuration tile from its index. 3 | % 4 | % IM = createTile(INDEX); 5 | % INDEX is a number between 0 and 15, 6 | % and IM is the corresponding tile. 7 | % 8 | % Example 9 | % createTile(2) 10 | % [0 1;0 0] 11 | % createTile(3) 12 | % [1 1;0 0] 13 | % 14 | % See also 15 | % tileIndex, createTile3d 16 | % 17 | 18 | % ------ 19 | % Author: David Legland 20 | % e-mail: david.legland@inrae.fr 21 | % Created: 2009-05-25, using Matlab 7.7.0.471 (R2008b) 22 | % Copyright 2009 INRA - Cepia Software Platform. 23 | 24 | % create empty array 25 | tile = false([2 2]); 26 | 27 | % update value of each voxel 28 | tile(1,1) = bitand(v,1)~=0; 29 | tile(1,2) = bitand(v,2)~=0; 30 | tile(2,1) = bitand(v,4)~=0; 31 | tile(2,2) = bitand(v,8)~=0; 32 | -------------------------------------------------------------------------------- /matImage/imFilters/createTile3d.m: -------------------------------------------------------------------------------- 1 | function tile = createTile3d(v) 2 | % Create a 3D 2-by-2-by-2 binary configuration tile from its index. 3 | % 4 | % IM = createTile3d(INDEX); 5 | % INDEX is a number between 0 and 255, 6 | % and IM is the corresponding tile. 7 | % 8 | % Example 9 | % createTile(0) 10 | % [ [0 0;0 0] ; [0 0;0 0] ] 11 | % createTile(3) 12 | % [ [1 1;0 0] ; [0 0;0 0] ] 13 | % 14 | % See also 15 | % tileIndex3d, createTile 16 | % 17 | 18 | % ------ 19 | % Author: David Legland 20 | % e-mail: david.legland@inrae.fr 21 | % Created: 2009-05-25, using Matlab 7.7.0.471 (R2008b) 22 | % Copyright 2009 INRA - Cepia Software Platform. 23 | 24 | % create empty array 25 | tile = false([2 2 2]); 26 | 27 | % update value of each voxel 28 | tile(1,1,1) = bitand(v,1)~=0; 29 | tile(1,2,1) = bitand(v,2)~=0; 30 | tile(2,1,1) = bitand(v,4)~=0; 31 | tile(2,2,1) = bitand(v,8)~=0; 32 | tile(1,1,2) = bitand(v,16)~=0; 33 | tile(1,2,2) = bitand(v,32)~=0; 34 | tile(2,1,2) = bitand(v,64)~=0; 35 | tile(2,2,2) = bitand(v,128)~=0; 36 | -------------------------------------------------------------------------------- /matImage/imFilters/cross3d.m: -------------------------------------------------------------------------------- 1 | function se = cross3d 2 | %CROSS3D Return a 3D structuring element with cross shape 3 | % 4 | % 5 | % 6 | % --------- 7 | % 8 | % author : David Legland 9 | % INRA - TPV URPOI - BIA IMASTE 10 | % created the 30/09/2004. 11 | % 12 | 13 | % HISTORY 14 | 15 | se = zeros([3 3 3]); 16 | se(1,2,2) = 1; 17 | se(3,2,2) = 1; 18 | se(2,:,:) = [0 1 0;1 1 1;0 1 0]; 19 | 20 | -------------------------------------------------------------------------------- /matImage/imFilters/fontHelvetica07.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imFilters/fontHelvetica07.tif -------------------------------------------------------------------------------- /matImage/imFilters/grayHist.m: -------------------------------------------------------------------------------- 1 | function ghist = grayHist(img, varargin) 2 | %GRAYHIST Compute frequencies of configurations in binary images 3 | % 4 | % 5 | % 6 | % --------- 7 | % 8 | % author : David Legland 9 | % INRA - TPV URPOI - BIA IMASTE 10 | % created the 22/10/2004. 11 | % 12 | 13 | % HISTORY 14 | % 16/02/2005 : rewrite using grayFilter 15 | 16 | gray = grayFilter(img, varargin{:}); 17 | nd = length(size(img)); 18 | ghist = hist(gray(:), 0:(power(2, power(2, nd))-1)); 19 | -------------------------------------------------------------------------------- /matImage/imFilters/imCheckerboardLabels.m: -------------------------------------------------------------------------------- 1 | function img = imCheckerboardLabels(size, tileWidth) 2 | %IMCHECKERBOARDLABELS Create a checkerboard label image 3 | % 4 | % IMG = imCheckerboardLabels(IMGSIZE, TILEWIDTH) 5 | % 6 | % Example 7 | % lbl = imCheckerboardLabels([128 128], [8 8]); 8 | % rgb = label2rgb(lbl, 'colorcube', 'w', 'shuffle'); 9 | % imshow(rgb); 10 | % 11 | % See also 12 | % 13 | % 14 | % ------ 15 | % Author: David Legland 16 | % e-mail: david.legland@grignon.inra.fr 17 | % Created: 2013-02-25, using Matlab 7.9.0.529 (R2009b) 18 | % Copyright 2013 INRA - Cepia Software Platform. 19 | 20 | img = zeros(size); 21 | 22 | nTiles = ceil(size ./ tileWidth); 23 | 24 | lab = 1; 25 | for y = 1:nTiles(1) 26 | i0 = (y - 1) * tileWidth(1) + 1; 27 | i1 = min(y * tileWidth(1), size(1)); 28 | for x = 1:nTiles(2) 29 | j0 = (x - 1) * tileWidth(2) + 1; 30 | j1 = min(x * tileWidth(2), size(2)); 31 | 32 | img(i0:i1, j0:j1) = lab; 33 | lab = lab + 1; 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /matImage/imFilters/imDrawText.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imFilters/imDrawText.m -------------------------------------------------------------------------------- /matImage/imFilters/imFillHoles.m: -------------------------------------------------------------------------------- 1 | function res = imFillHoles(img, varargin) 2 | %IMFILLHOLES Fill holes in a binary image 3 | % 4 | % RES = imFillHoles(IMG) 5 | % Mainly a wrapper for the function imfill, that is more generic. 6 | % 7 | % Example 8 | % img = imread('circles.png'); 9 | % img2 = imFillHoles(img); 10 | % figure; imshow(img2); 11 | % 12 | % See also 13 | % imSkeleton, imfill 14 | % 15 | % ------ 16 | % Author: David Legland 17 | % e-mail: david.legland@grignon.inra.fr 18 | % Created: 2012-05-16, using Matlab 7.9.0.529 (R2009b) 19 | % Copyright 2012 INRA - Cepia Software Platform. 20 | 21 | res = imfill(img, 'holes'); 22 | -------------------------------------------------------------------------------- /matImage/imFilters/imGray12ToGray8.m: -------------------------------------------------------------------------------- 1 | function img = imGray12ToGray8(img) 2 | % Convert a 12 bits gray scale image to 8 bits gray scale. 3 | % 4 | % Usage: 5 | % RES = imGray12ToGray8(IMG); 6 | % IMG is a 12-bits grayscale image with 4096 different values. For 7 | % simplicity, they are stored as 16-bits images. For some obscure 8 | % reasons, the gray levels range from 32768 to 65535. 9 | % This function converts gray values between 0 and 255, and return an 10 | % uint8 image. 11 | % 12 | % The applied operation is: 13 | % RES = (IMG-32768)/16 14 | % 15 | % 16 | % Example 17 | % imGray12ToGray8; 18 | % 19 | % 20 | % See also 21 | % imAdjustDynamic 22 | 23 | % ------ 24 | % Author: David Legland 25 | % e-mail: david.legland@inrae.fr 26 | % Created: 2008-01-08, using Matlab 7.4.0.287 (R2007a) 27 | % Copyright 2008 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas. 28 | 29 | img = uint8((double(img) - 32768) / 16); 30 | -------------------------------------------------------------------------------- /matImage/imFilters/imHConcave.m: -------------------------------------------------------------------------------- 1 | function res = imHConcave(image, threshold) 2 | % H-concave transformation of an image 3 | % H-concave transformation is defined by substracting an 4 | % image from the h-minima of the original image 5 | % 6 | % author : Gaetan Lehmann 7 | % Wed Mar 23 14:01:13 CET 2005 8 | % 9 | hmin = imhmin(image, threshold); 10 | res = imsubtract( hmin, image); 11 | -------------------------------------------------------------------------------- /matImage/imFilters/imHConvex.m: -------------------------------------------------------------------------------- 1 | function res = imHConvex(image, threshold) 2 | % H-convex transformation of an image 3 | % 4 | % H-convex transformation is defined by substracting the h-maxima of an 5 | % image from the original image 6 | % 7 | % author : Gaetan Lehmann 8 | % Wed Mar 23 14:01:13 CET 2005 9 | % 10 | hmax = imhmax(image, threshold); 11 | res = imsubtract( image, hmax); 12 | -------------------------------------------------------------------------------- /matImage/imFilters/imKirschFilter.m: -------------------------------------------------------------------------------- 1 | function [res, index] = imKirschFilter(img) 2 | %IMKIRSCHFILTER Extract image edges using Kirsch directional filters 3 | % 4 | % output = imKirschFilter(input) 5 | % 6 | % Example 7 | % img = imread('rice.png'); 8 | % imgf = imKirschFilter(img); 9 | % figure; imshow(imgf); 10 | % 11 | % See also 12 | % imRobinsonFilter, imGradientFilter 13 | 14 | % ------ 15 | % Author: David Legland 16 | % e-mail: david.legland@inra.fr 17 | % Created: 2015-05-06, using Matlab 8.4.0.150421 (R2014b) 18 | % Copyright 2015 INRA - Cepia Software Platform. 19 | 20 | g1 = [ 5 5 5 ; -3 0 -3 ; -3 -3 -3]; 21 | g2 = [ 5 5 -3 ; 5 0 -3 ; -3 -3 -3]; 22 | g3 = [ 5 -3 -3 ; 5 0 -3 ; 5 -3 -3]; 23 | g4 = [-3 -3 -3 ; 5 0 -3 ; 5 5 -3]; 24 | g5 = [-3 -3 -3 ; -3 0 -3 ; 5 5 5]; 25 | g6 = [-3 -3 -3 ; -3 0 5 ; -3 5 5]; 26 | g7 = [-3 -3 5 ; -3 0 5 ; -3 -3 5]; 27 | g8 = [-3 5 5 ; -3 0 5 ; -3 -3 -3]; 28 | 29 | kernels = {g1, g2, g3, g4, g5, g6, g7, g8}; 30 | 31 | res = zeros(size(img), class(img)); 32 | index = zeros(size(img), 'int8'); 33 | for i = 1:8 34 | imgf = imfilter(img, kernels{i}, 'replicate'); 35 | inds = imgf >= img; 36 | res(inds) = imgf(inds); 37 | index(inds) = i; 38 | end 39 | -------------------------------------------------------------------------------- /matImage/imFilters/imLUT.m: -------------------------------------------------------------------------------- 1 | function res = imLUT(img, lut) 2 | %IMLUT Apply a look-up table (LUT) to a gray-scale image. 3 | % 4 | % IM2 = imLUT(IMG, LUT). 5 | % IMG is a gray-scale image, 1, 8 or 16 bits image, LUT is an array 6 | % with 2**Nbits elements. 7 | % Each element x in IMG will by replaced by the value of the (x+1)-th 8 | % element in the LUT. 9 | % The resulting image has the same class as the look-up table. 10 | % 11 | 12 | % --------- 13 | % author : David Legland 14 | % INRA - TPV URPOI - BIA IMASTE 15 | % created the 25/10/2004. 16 | % 17 | 18 | % HISTORY 19 | 20 | res = zeros(size(img), class(lut)); 21 | for i = 0:length(lut)-1 22 | res(img==i) = lut(i+1); 23 | end -------------------------------------------------------------------------------- /matImage/imFilters/imLabelSkeleton.m: -------------------------------------------------------------------------------- 1 | function lbl = imLabelSkeleton(skel) 2 | %IMLABELSKELETON Label skeleton pixels according to local topology 3 | % 4 | % LBL = imLabelSkeleton(SKEL) 5 | % Associates a label to each pixel of the binary imag SKEL, depending on 6 | % the local topology: 7 | % 0 -> background pixel 8 | % 1 -> extremity pixel, with one neighbor 9 | % 2 -> edge pixel, with two neighbors 10 | % 3 -> intersection pixel, with at least 3 neighbors. 11 | % 12 | % Example 13 | % % Color representation of a skeleton 14 | % img = imread('circles.png'); 15 | % skel = imSkeleton(img); 16 | % lbl = imLabelSkeleton(skel); 17 | % rgb = label2rgb(lbl, [1 0 0;0 1 0;0 0 1], [1 1 1]); 18 | % imshow(rgb); 19 | % 20 | % % overlay on binary image 21 | % ovr = imOverlay(img, skel, rgb); 22 | % figure; imshow(ovr); 23 | % 24 | % See also 25 | % imSkeleton, label2rgb 26 | % 27 | 28 | % ------ 29 | % Author: David Legland 30 | % e-mail: david.legland@grignon.inra.fr 31 | % Created: 2012-08-03, using Matlab 7.9.0.529 (R2009b) 32 | % Copyright 2012 INRA - Cepia Software Platform. 33 | 34 | lbl = min(imfilter(double(skel), ones(3, 3)) - 1, 3); 35 | lbl(~skel) = 0; 36 | -------------------------------------------------------------------------------- /matImage/imFilters/imLaplacian.m: -------------------------------------------------------------------------------- 1 | function lap = imLaplacian(img, varargin) 2 | %IMLAPLACIAN Discrete Laplacian of an image 3 | % 4 | % LAP = imLaplacian(IMG) 5 | % 6 | % Example 7 | % % Laplacian of a smoothed circle image 8 | % img = imread('circles.png'); 9 | % imgf = imGaussianFilter(double(img)); 10 | % lap = imLaplacian(imgf); 11 | % imshow(lap, [-.3 .3]); 12 | % colormap jet 13 | % 14 | % See also 15 | % imGaussianFilter, imMorphoLaplacian 16 | % 17 | 18 | % ------ 19 | % Author: David Legland 20 | % e-mail: david.legland@grignon.inra.fr 21 | % Created: 2012-01-19, using Matlab 7.9.0.529 (R2009b) 22 | % Copyright 2012 INRA - Cepia Software Platform. 23 | 24 | % first order gradient 25 | [gx, gy] = imGradient(img, varargin{:}); 26 | 27 | % second order gradient 28 | [gx2, gxy] = imGradient(gx, varargin{:}); %#ok 29 | [gxy, gy2] = imGradient(gy, varargin{:}); %#ok 30 | 31 | lap = gx2 + gy2; 32 | -------------------------------------------------------------------------------- /matImage/imFilters/imMergeCells.m: -------------------------------------------------------------------------------- 1 | function res = imMergeCells(img, c1, c2) 2 | %IMMERGECELLS merge labeled cell of an image 3 | % 4 | % Deprecated: use 'imMergeLabels' instead. 5 | % 6 | % Usage: 7 | % LBL2 = imMergeCells(LBL, C1, C2); 8 | % LBL is a label image, C1 and C2 are labels of the 2 cells to merge. 9 | % The indices of two regions are set to the same value, and the boundary 10 | % between the 2 regions is also merged to the new region, preserving 11 | % topology of adjacent regions. 12 | % 13 | % 14 | % ----- 15 | % 16 | % author : David Legland 17 | % INRA - TPV URPOI - BIA IMASTE 18 | % created the 19/07/2004. 19 | % 20 | 21 | warning('imael:deprecated', ... 22 | 'imMergeCells is deprecated, use imMergeLabels instead'); 23 | 24 | ind = imBoundaryIndices(img, c1, c2); 25 | res = img; 26 | res(img==c2)=c1; 27 | res(ind)=c1; 28 | 29 | return; 30 | 31 | -------------------------------------------------------------------------------- /matImage/imFilters/imMorphoGradient.m: -------------------------------------------------------------------------------- 1 | function res = imMorphoGradient(img, se) 2 | %IMMORPHOGRADIENT Morphological gradient of an image 3 | % 4 | % RES = imMorphoGradient(IMG, SE) 5 | % Computes the morphological gradient of the image IMG, using the 6 | % structuring element SE. 7 | % 8 | % Morphological gradient is defined as the difference of a morphological 9 | % dilation and a morphological erosion with the same structuring element. 10 | % This function is mainly a shortcut to apply all operations in one call. 11 | % 12 | % Example 13 | % img = imread('cameraman.tif'); 14 | % se = ones(3, 3); 15 | % grad = imMorphoGradient(img, se); 16 | % imshow(grad); 17 | % 18 | % See also 19 | % imdilate, imerode, imGradientFilter, imsubtract, rangefilt 20 | % 21 | 22 | % ------ 23 | % Author: David Legland 24 | % e-mail: david.legland@nantes.inra.fr 25 | % Created: 2010-04-06, using Matlab 7.9.0.529 (R2009b) 26 | % Copyright 2010 INRA - Cepia Software Platform. 27 | 28 | res = imsubtract(imdilate(img, se), imerode(img, se)); -------------------------------------------------------------------------------- /matImage/imFilters/imResize.m: -------------------------------------------------------------------------------- 1 | function res = imResize(img, varargin) 2 | %IMRESIZE Resize 2D or 3D image. 3 | % 4 | % RES = imResize(IMG, SCALE) 5 | % Returns an image that is SCALE times the size of IMG. IMG can be a 6 | % grayscale, RGB, or binary image, with 2 or 3 spatial dimensions. 7 | % 8 | % This function is simply a wrapper to the original 'imresize' or 9 | % 'imresize3' functions, depending on the dimension of the input array. 10 | % 11 | % Example 12 | % imResize 13 | % 14 | % See also 15 | % imresize, imDownSample 16 | 17 | % ------ 18 | % Author: David Legland 19 | % e-mail: david.legland@inra.fr 20 | % Created: 2019-07-29, using Matlab 9.6.0.1072779 (R2019a) 21 | % Copyright 2019 INRA - Cepia Software Platform. 22 | 23 | if is3DImage(img) 24 | res = imresize3(img, varargin{:}); 25 | else 26 | res = imresize(img, varargin{:}); 27 | end -------------------------------------------------------------------------------- /matImage/imFilters/imRotate90.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imFilters/imRotate90.m -------------------------------------------------------------------------------- /matImage/imFilters/imSkeleton.m: -------------------------------------------------------------------------------- 1 | function res = imSkeleton(img, varargin) 2 | % Homothopic skeleton of a binary image. 3 | % 4 | % SK = imSkeleton(IMG) 5 | % Computes the skeleton of the binary image IMG. The skeleton is computed 6 | % by iterative homothopic thinning of the input image. 7 | % Basically, this is just a wrapper for the "bwmorph" function. If the 8 | % "bwskel" function (introduced in 2018) is found, it is used instead. 9 | % 10 | % Example 11 | % img = imread('circles.png'); 12 | % skel = imSkeleton(img); 13 | % ovr = imOverlay(img, skel); 14 | % imshow(ovr) 15 | % 16 | % See also 17 | % bwmorph, bwskel, imLabelSkeleton, imBoundary, imOverlay 18 | % 19 | 20 | % ------ 21 | % Author: David Legland 22 | % e-mail: david.legland@inrae.fr 23 | % Created: 2012-05-16, using Matlab 7.9.0.529 (R2009b) 24 | % Copyright 2012 INRA - Cepia Software Platform. 25 | 26 | if exist('bwskel', 'file') 27 | res = bwskel(img); 28 | else 29 | res = bwmorph(img, 'thin', Inf); 30 | end 31 | -------------------------------------------------------------------------------- /matImage/imFilters/imSplitBands.m: -------------------------------------------------------------------------------- 1 | function [r, g, b] = imSplitBands(rgb) 2 | %IMSPLITBANDS Split the 3 bands of a 2D or 3D image 3 | % 4 | % Note: deprecated, use imSplitChannels instead 5 | % 6 | % [R, G, B] = imSplitBands(RGB); 7 | % 8 | % Example 9 | % img = imread('peppers.png'); 10 | % [r, g, b] = imSplitBands(img); 11 | % figure; imshow(r); title('red'); 12 | % figure; imshow(g); title('green'); 13 | % 14 | % See also 15 | % imMergeBands 16 | % 17 | % ------ 18 | % Author: David Legland 19 | % e-mail: david.legland@grignon.inra.fr 20 | % Created: 2010-02-02, using Matlab 7.9.0.529 (R2009b) 21 | % Copyright 2010 INRA - Cepia Software Platform. 22 | 23 | warning('imFilters:deprecated', ... 24 | 'imSplitBands is deprecated, use imSplitChannels instead'); 25 | 26 | if ndims(rgb) == 3 27 | r = rgb(:,:,1); 28 | g = rgb(:,:,2); 29 | b = rgb(:,:,3); 30 | elseif ndims(rgb) == 4 31 | r = squeeze(rgb(:,:,1,:)); 32 | g = squeeze(rgb(:,:,2,:)); 33 | b = squeeze(rgb(:,:,3,:)); 34 | else 35 | error('unprocessed image dimension'); 36 | end 37 | -------------------------------------------------------------------------------- /matImage/imFilters/imSplitChannels.m: -------------------------------------------------------------------------------- 1 | function [r, g, b] = imSplitChannels(rgb) 2 | % Split the 3 channels of a 2D or 3D image. 3 | % 4 | % [R, G, B] = imSplitChannels(RGB); 5 | % 6 | % Example 7 | % img = imread('peppers.png'); 8 | % [r, g, b] = imSplitChannels(img); 9 | % figure; imshow(r); title('red'); 10 | % figure; imshow(g); title('green'); 11 | % 12 | % See also 13 | % imMergeChannels 14 | 15 | % ------ 16 | % Author: David Legland 17 | % e-mail: david.legland@inrae.fr 18 | % Created: 2010-02-02, using Matlab 7.9.0.529 (R2009b) 19 | % Copyright 2010 INRA - Cepia Software Platform. 20 | 21 | if ndims(rgb) == 3 22 | % process planar image 23 | r = rgb(:,:,1); 24 | g = rgb(:,:,2); 25 | b = rgb(:,:,3); 26 | 27 | elseif ndims(rgb) == 4 28 | % process 3D image 29 | r = squeeze(rgb(:,:,1,:)); 30 | g = squeeze(rgb(:,:,2,:)); 31 | b = squeeze(rgb(:,:,3,:)); 32 | else 33 | error('unprocessed image dimension'); 34 | end 35 | -------------------------------------------------------------------------------- /matImage/imFilters/imThumbnail.m: -------------------------------------------------------------------------------- 1 | function res = imThumbnail(img, siz, varargin) 2 | %IMTHUMBNAIL Resize an image to bound the size in each direction 3 | % 4 | % RES = imThumbnail(IMG, SIZ) 5 | % Resizes the image given in IMG such that the dimension is lower or 6 | % equal to the dimension given by SIZ. 7 | % 8 | % Example 9 | % img = imread('cameraman.tif'); 10 | % img2 = imThumbnail(img, [64 64]); 11 | % imshow(img2) 12 | % 13 | % img = imread('peppers.png'); 14 | % img2 = imThumbnail(img, [64 64]); 15 | % imshow(img2) 16 | % 17 | % See also 18 | % imresize 19 | % 20 | % ------ 21 | % Author: David Legland 22 | % e-mail: david.legland@grignon.inra.fr 23 | % Created: 2013-02-14, using Matlab 7.9.0.529 (R2009b) 24 | % Copyright 2013 INRA - Cepia Software Platform. 25 | 26 | k1 = siz(1) / size(img, 1); 27 | k2 = siz(2) / size(img, 2); 28 | k = min(k1, k2); 29 | 30 | res = imresize(img, k, varargin{:}); 31 | -------------------------------------------------------------------------------- /matImage/imFilters/imTranspose.m: -------------------------------------------------------------------------------- 1 | function res = imTranspose(img) 2 | % Transpose an image (grayscale or RGB). 3 | % 4 | % RES = imTranspose(IMG) 5 | % Simply permutes image dimensions 1 and 2. Works for gray-scale images 6 | % as well as for color images. 7 | % 8 | % Example 9 | % img = imread('peppers.png'); 10 | % img2 = imTranspose(img); 11 | % imshow(img2); 12 | % 13 | % See also 14 | % imFlip, imRotate90 15 | 16 | % ------ 17 | % Author: David Legland 18 | % e-mail: david.legland@inrae.fr 19 | % Created: 2007-08-16, using Matlab 7.4.0.287 (R2007a) 20 | % Copyright 2007 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas. 21 | 22 | 23 | if ndims(img) == 2 %#ok 24 | res = img'; 25 | else 26 | res = permute(img, [2 1 3]); 27 | end 28 | -------------------------------------------------------------------------------- /matImage/imFilters/imdirfilter.m: -------------------------------------------------------------------------------- 1 | function res = imdirfilter(img, varargin) 2 | %IMDIRFILTER Apply and combine several directional filters 3 | % 4 | % Deprecated, use "imDirectionlFilter" instead. 5 | % 6 | % --------- 7 | % author : David Legland 8 | % INRA - TPV URPOI - BIA IMASTE 9 | % created the 16/02/2004. 10 | % 11 | 12 | % HISTORY 13 | % 17/02/2004 debug, added some doc, manage different types of images 14 | % 26/02/2007 cleanup code 15 | % 03/10/2007 update doc 16 | % 19/08/2009 fix bug in parsing arguments 17 | % 18/06/2010 fix initialization for 'min' operator, update doc 18 | % 02/12/2011 deprecated and replace by imDirectionalFilter 19 | 20 | warning('imael:deprecated', ... 21 | 'function "imdirfilter" has been replaced by "imDirectionalFilter"'); 22 | 23 | res = imDirectionalFilter(img, varargin{:}); 24 | -------------------------------------------------------------------------------- /matImage/imFilters/imrecerode.m: -------------------------------------------------------------------------------- 1 | function res = imrecerode(img, h, varargin) 2 | %IMRECERODE Perform a morphological reconstruction by erosion 3 | % 4 | % usage: 5 | % RES = imrecerode(IMG, H) 6 | % performs morphological reconstruction by erosion of img+h over img. 7 | % 8 | % RES = imrecerode(IMG, H, CONN) 9 | % specifies connectivity, by default 8 or 26, depending on image 10 | % dimension 11 | % 12 | 13 | % Process input arguments 14 | if length(size(img))==3 15 | conn = 26; 16 | else 17 | conn = 8; 18 | end 19 | 20 | if ~isempty(varargin) 21 | conn=varargin{1}; 22 | end 23 | 24 | % apply reconstruction 25 | marker = imcomplement(img); 26 | res = imcomplement(imreconstruct(marker, imadd(marker, h), conn)); -------------------------------------------------------------------------------- /matImage/imFilters/mergeRegions.m: -------------------------------------------------------------------------------- 1 | function res = mergeRegions(lbl, varargin) 2 | %MERGEREGIONS Merge regions of labeled image, using inclusion criteria 3 | % 4 | % Deprecated: replaced by "imMergeEnclosedRegions" 5 | % 6 | % Merge regions in an image. Criterion is a inclusion criterion: if a 7 | % region is mostly within the convex image of a neighbor region, then the 8 | % two region merge. 9 | % 10 | % See Also 11 | % imMergeEnclosedRegions 12 | % 13 | % --------- 14 | % author : David Legland 15 | % INRA - TPV URPOI - BIA IMASTE 16 | % created the 14/01/2004 17 | % 18 | 19 | % HISTORY 20 | % 17/08/2004 create as independant function, and merge 2D and 3D cases 21 | 22 | res = imMergeEnclosedRegions(lbl, varargin{:}); 23 | -------------------------------------------------------------------------------- /matImage/imFilters/tileIndex.m: -------------------------------------------------------------------------------- 1 | function index = tileIndex(tile) 2 | % Return the index of a 2-by-2 binary configuration tile. 3 | % 4 | % INDEX = tileIndex(TILE) 5 | % Compute thes index of a tile, given as a 2-by-2 binary image, by adding 6 | % powers of two multiplied by values of the tile. 7 | % [0 0;0 0] has index 0 8 | % [1 0;0 0] has index 1 9 | % [0 1;0 0] has index 2 10 | % [1 1;0 0] has index 3 11 | % [0 0;1 0] has index 4 12 | % ... 13 | % [1 1;1 1] has index 15 14 | % 15 | % Example 16 | % tileIndex 17 | % 18 | % See also 19 | % createTile, tileIndex3d 20 | % 21 | 22 | % ------ 23 | % Author: David Legland 24 | % e-mail: david.legland@inrae.fr 25 | % Created: 2009-05-25, using Matlab 7.7.0.471 (R2008b) 26 | % Copyright 2009 INRA - Cepia Software Platform. 27 | 28 | tile = tile > 0; 29 | index = tile(1,1) + 2*tile(1,2) + 4*tile(2,1) + 8*tile(2,2); -------------------------------------------------------------------------------- /matImage/imFilters/tileIndex3d.m: -------------------------------------------------------------------------------- 1 | function index = tileIndex3d(tile) 2 | % Return the index of a 2-by-2-by-2 3D binary configuration tile. 3 | % 4 | % INDEX = tileIndex3d(TILE) 5 | % Compute the index of a tile, given as a 2x2x2 binary image, by adding 6 | % powers of two mutliplied by values of the tile. The result is comprised 7 | % between 0 and 255. 8 | % Iterate on x, y, then z directions, corresponding to directions 2, 1, 9 | % and 3. 10 | % 11 | % Example 12 | % tile = zeros([2 2 2]); 13 | % tile(1,1:2,1) = 1; 14 | % tileIndex3d(tile) 15 | % 3 16 | % 17 | % See also 18 | % createTile3d, tileIndex 19 | % 20 | 21 | % ------ 22 | % Author: David Legland 23 | % e-mail: david.legland@inrae.fr 24 | % Created: 2009-05-25, using Matlab 7.7.0.471 (R2008b) 25 | % Copyright 2009 INRA - Cepia Software Platform. 26 | 27 | tile = tile>0; 28 | index = ... 29 | tile(1,1,1) + 2*tile(1,2,1) + 4*tile(2,1,1) + 8*tile(2,2,1) + ... 30 | 16*tile(1,1,2) + 32*tile(1,2,2) + 64*tile(2,1,2) + 128*tile(2,2,2); 31 | -------------------------------------------------------------------------------- /matImage/imGeodesics/Contents.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imGeodesics/Contents.m -------------------------------------------------------------------------------- /matImage/imGeodesics/chamferDistanceError.m: -------------------------------------------------------------------------------- 1 | function err = chamferDistanceError(weights, varargin) 2 | %CHAMFERDISTANCEERROR Compute relative error of chamfer distance with euclidean 3 | % 4 | % ERR = chamferDistanceError(WEIGHTS) 5 | % 6 | % Example 7 | % chamferDistanceError(2, 3) 8 | % ans = 9 | % 10 | % 11 | % See also 12 | % imGeodesics, imChamferDistance 13 | % 14 | % ------ 15 | % Author: David Legland 16 | % e-mail: david.legland@grignon.inra.fr 17 | % Created: 2010-07-30, using Matlab 7.9.0.529 (R2009b) 18 | % Copyright 2010 INRA - Cepia Software Platform. 19 | 20 | % extract weights 21 | w1 = weights(1); 22 | w2 = weights(2); 23 | 24 | if w2 == 0 25 | w2 = 2*w1; 26 | end 27 | 28 | w3 = 0; 29 | if length(weights)>2 30 | w3 = weights(3); 31 | end 32 | if w3 == 0 33 | w3 = w1 + w2; 34 | end 35 | 36 | % diagonal euclidean distance 37 | d11e = hypot(w1, w1); 38 | 39 | % relative error of diagonal approximation 40 | err = 100*(w2-d11e)/d11e; 41 | 42 | 43 | if ~isempty(varargin) 44 | % euclidean cavalier-step distance 45 | d21e = hypot(2*w1, w1); 46 | 47 | % approximation of cavalier-step distance 48 | err(2) = 100*(w3-d21e)/d21e; 49 | end 50 | -------------------------------------------------------------------------------- /matImage/imMinkowski/imAreaDensity.m: -------------------------------------------------------------------------------- 1 | function [ad, labels] = imAreaDensity(img, varargin) 2 | % Compute area density in a 2D image. 3 | % 4 | % DENSITY = imAreaDensity(IMG) 5 | % 6 | % Example 7 | % imAreaDensity 8 | % 9 | % See also 10 | % imArea 11 | % 12 | 13 | % ------ 14 | % Author: David Legland 15 | % e-mail: david.legland@inrae.fr 16 | % Created: 2010-01-21, using Matlab 7.9.0.529 (R2009b) 17 | % Copyright 2010 INRA - Cepia Software Platform. 18 | 19 | % check image dimension 20 | if ndims(img)~=2 %#ok 21 | error('first argument should be a 2D image'); 22 | end 23 | 24 | % in case of a label image, return a vector with a set of results 25 | if ~islogical(img) 26 | labels = unique(img); 27 | labels(labels==0) = []; 28 | ad = zeros(length(labels), 1); 29 | for i=1:length(labels) 30 | ad(i) = imAreaDensity(img==labels(i), varargin{:}); 31 | end 32 | return; 33 | end 34 | 35 | % in case of binary image, compute only one label... 36 | labels = 1; 37 | 38 | % component area in image 39 | a = imArea(img); 40 | 41 | % total area of image 42 | totalArea = numel(img); 43 | 44 | % compute area density 45 | ad = a / totalArea; 46 | -------------------------------------------------------------------------------- /matImage/imMinkowski/imEuler1d.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imMinkowski/imEuler1d.m -------------------------------------------------------------------------------- /matImage/imMinkowski/imEuler1dEstimate.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imMinkowski/imEuler1dEstimate.m -------------------------------------------------------------------------------- /matImage/imMinkowski/imEuler2d.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imMinkowski/imEuler2d.m -------------------------------------------------------------------------------- /matImage/imMinkowski/imEuler3d.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imMinkowski/imEuler3d.m -------------------------------------------------------------------------------- /matImage/imMinkowski/imVolumeDensity.m: -------------------------------------------------------------------------------- 1 | function ad = imVolumeDensity(img, varargin) 2 | % Compute volume density of a 3D image. 3 | % 4 | % Vv = imVolumeDensity(IMG) 5 | % 6 | % Example 7 | % imVolumeDensity 8 | % 9 | % See also 10 | % imVolume, imSurfaceAreaDensity 11 | % 12 | 13 | % ------ 14 | % Author: David Legland 15 | % e-mail: david.legland@inrae.fr 16 | % Created: 2010-01-21, using Matlab 7.9.0.529 (R2009b) 17 | % Copyright 2010 INRAE - Cepia Software Platform. 18 | 19 | % check image dimension 20 | if ndims(img) ~= 3 21 | error('first argument should be a 3D image'); 22 | end 23 | 24 | % component volume in image 25 | a = imVolume(img); 26 | 27 | % total volume of image 28 | totalArea = numel(img); 29 | 30 | % compute volume density 31 | ad = a / totalArea; 32 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/angle3Points.m: -------------------------------------------------------------------------------- 1 | function theta = angle3Points(varargin) 2 | %ANGLE3POINTS Compute oriented angle made by 3 points 3 | % 4 | % ALPHA = angle3Points(P1, P2, P3); 5 | % Computes the angle between the points P1, P2 and P3. 6 | % Pi are either [1*2] arrays, or [N*2] arrays, in this case ALPHA is a 7 | % [N*1] array. The angle computed is the directed angle between line 8 | % (P2P1) and line (P2P3). 9 | % Result is always given in radians, between 0 and 2*pi. 10 | % 11 | % See Also: 12 | % points2d, angles2d, angle2points 13 | % 14 | % 15 | % --------- 16 | % Author: David Legland 17 | % e-mail: david.legland@grignon.inra.fr 18 | % created the 23/02/2004. 19 | % Copyright 2010 INRA - Cepia Software Platform. 20 | 21 | 22 | % HISTORY : 23 | % 25/09/2005 : enable single parameter 24 | 25 | if length(varargin)==3 26 | p1 = varargin{1}; 27 | p2 = varargin{2}; 28 | p3 = varargin{3}; 29 | elseif length(varargin)==1 30 | var = varargin{1}; 31 | p1 = var(1,:); 32 | p2 = var(2,:); 33 | p3 = var(3,:); 34 | end 35 | 36 | % angle line (P2 P1) 37 | theta = lineAngle(createLine(p2, p1), createLine(p2, p3)); 38 | 39 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/createTile.m: -------------------------------------------------------------------------------- 1 | function tile = createTile(label) 2 | %CREATETILE create a tile from its label 3 | % 4 | % IM = createTile(LABEL); 5 | % LABEL is a number between 1 and 256, 6 | % and IM is the corresponding tile. 7 | % 8 | 9 | 10 | v = label-1; 11 | 12 | tile = zeros([2 2 2]); 13 | tile(1,1,1) = bitand(v,1)~=0; 14 | tile(1,2,1) = bitand(v,2)~=0; 15 | tile(2,1,1) = bitand(v,4)~=0; 16 | tile(2,2,1) = bitand(v,8)~=0; 17 | tile(1,1,2) = bitand(v,16)~=0; 18 | tile(1,2,2) = bitand(v,32)~=0; 19 | tile(2,1,2) = bitand(v,64)~=0; 20 | tile(2,2,2) = bitand(v,128)~=0; 21 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/grayHist.m: -------------------------------------------------------------------------------- 1 | function ghist = grayHist(img, varargin) 2 | %GRAYHIST Compute frequencies of configurations in binary images 3 | % 4 | % 5 | % 6 | % --------- 7 | % 8 | % author : David Legland 9 | % INRA - TPV URPOI - BIA IMASTE 10 | % created the 22/10/2004. 11 | % 12 | 13 | % HISTORY 14 | % 16/02/2005 : rewrite using grayFilter 15 | 16 | gray = grayFilter(img, varargin{:}); 17 | nd = length(size(img)); 18 | ghist = hist(gray(:), 0:(power(2, power(2, nd))-1)); 19 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/imLUT.m: -------------------------------------------------------------------------------- 1 | function res = imLUT(img, lut) 2 | %IMLUT apply a lut to a gray-scale image. 3 | % 4 | % IM2 = imLUT(IMG, LUT). 5 | % IMG is a gray-scale image, 1, 8 or 16 bits image, LUT is a double array 6 | % with 2**Nbits elements. 7 | % Each element x in IMG will by replaced by the value of the (x+1)-th 8 | % element in the LUT. 9 | % 10 | % --------- 11 | % 12 | % author : David Legland 13 | % INRA - TPV URPOI - BIA IMASTE 14 | % created the 25/10/2004. 15 | % 16 | 17 | % HISTORY 18 | 19 | res = zeros(size(img)); 20 | for i=0:length(lut)-1 21 | res(img==i) = lut(i+1); 22 | end -------------------------------------------------------------------------------- /matImage/imMinkowski/private/medianPlane.m: -------------------------------------------------------------------------------- 1 | function plane = medianPlane(p1, p2) 2 | %MEDIANPLANE Create a plane in the middle of 2 points 3 | % 4 | % PLANE = medianPlane(P1, P2) 5 | % Creates a plane in the middle of 2 points. 6 | % PLANE is perpendicular to line (P1 P2) and contains the midpoint of P1 7 | % and P2. 8 | % The direction of the normal of PLANE is the same as the vector from P1 9 | % to P2. 10 | % 11 | % See also: 12 | % planes3d, createPlane 13 | % 14 | % --------- 15 | % author : David Legland 16 | % INRA - TPV URPOI - BIA IMASTE 17 | % created the 18/02/2005. 18 | % 19 | 20 | % HISTORY 21 | % 28/06/2007: add doc, and manage multiple inputs 22 | 23 | % unify data dimension 24 | if size(p1, 1)==1 25 | p1 = repmat(p1, [size(p2, 1) 1]); 26 | elseif size(p2, 1)==1 27 | p2 = repmat(p2, [size(p1, 1) 1]); 28 | elseif size(p1, 1)~=size(p2, 1) 29 | error('data should have same length, or one data should have length 1'); 30 | end 31 | 32 | % middle point 33 | p0 = (p1 + p2)/2; 34 | 35 | % normal to plane 36 | n = p2-p1; 37 | 38 | % create plane from point and normal 39 | plane = createPlane(p0, n); -------------------------------------------------------------------------------- /matImage/imMinkowski/private/normalizeVector3d.m: -------------------------------------------------------------------------------- 1 | function vn = normalizeVector3d(v) 2 | %NORMALIZEVECTOR3D Normalize a 3D vector to have norm equal to 1 3 | % 4 | % V2 = normalizeVector3d(V); 5 | % Returns the normalization of vector V, such that ||V|| = 1. Vector V is 6 | % given as a row vector. 7 | % 8 | % If V is a N-by-3 array, normalization is performed for each row of the 9 | % input array. 10 | % 11 | % See also: 12 | % vectors3d, vectorNorm3d 13 | % 14 | % --------- 15 | % author : David Legland 16 | % INRA - TPV URPOI - BIA IMASTE 17 | % created the 29/11/2004. 18 | % 19 | 20 | % HISTORY 21 | % 2005-11-30 correct a bug 22 | % 2009-06-19 rename as normalizeVector3d 23 | % 2010-11-16 use bsxfun (Thanks to Sven Holcombe) 24 | 25 | vn = bsxfun(@rdivide, v, sqrt(sum(v.^2, 2))); 26 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/planeNormal.m: -------------------------------------------------------------------------------- 1 | function n = planeNormal(plane) 2 | %PLANENORMAL Compute the normal to a plane 3 | % 4 | % N = planeNormal(PLANE) 5 | % compute the normal of the given plane 6 | % PLANE : [x0 y0 z0 dx1 dy1 dz1 dx2 dy2 dz2] 7 | % N : [dx dy dz] 8 | % 9 | % See also 10 | % geom3d, planes3d, createPlane 11 | % 12 | % --------- 13 | % author : David Legland 14 | % INRA - TPV URPOI - BIA IMASTE 15 | % created the 17/02/2005. 16 | % 17 | 18 | % HISTORY 19 | % 15/04/2013 Extended to N-dim planes by Sven Holcombe 20 | 21 | % plane normal 22 | outSz = size(plane); 23 | outSz(2) = 3; 24 | n = zeros(outSz); 25 | n(:) = crossProduct3d(plane(:,4:6,:), plane(:, 7:9,:)); 26 | -------------------------------------------------------------------------------- /matImage/imMinkowski/private/vectorNorm3d.m: -------------------------------------------------------------------------------- 1 | function n = vectorNorm3d(v) 2 | %VECTORNORM3D Norm of a 3D vector or of set of 3D vectors 3 | % 4 | % N = vectorNorm3d(V); 5 | % Returns the norm of vector V. 6 | % 7 | % When V is a N-by-3 array, compute norm for each vector of the array. 8 | % Vector are given as rows. Result is then a N-by-1 array. 9 | % 10 | % NOTE: compute only euclidean norm. 11 | % 12 | % See Also 13 | % vectors3d, normalizeVector3d, vectorAngle3d, hypot3 14 | % 15 | % --------- 16 | % author : David Legland 17 | % INRA - TPV URPOI - BIA IMASTE 18 | % created the 21/02/2005. 19 | 20 | % HISTORY 21 | % 19/06/2009 rename as vectorNorm3d 22 | 23 | n = sqrt(sum(v.*v, 2)); 24 | -------------------------------------------------------------------------------- /matImage/imRegions/imMoment.m: -------------------------------------------------------------------------------- 1 | function m = imMoment(img, p, q) 2 | %IMMOMENT Compute simple moment(s) of an image 3 | % 4 | % M_PQ = imMoment(IMG, P, Q) 5 | % P is order for x coord, Q is order for y coord. 6 | % 7 | % Example 8 | % % generate image 9 | % img = zeros([5 6]); 10 | % img(2:3, 2:5) = 1; 11 | % % compute total mass of image 12 | % m00 = imMoment(img, 0, 0); 13 | % % compute centroid 14 | % cx = imMoment(img, 1, 0)/m00; 15 | % cy = imMoment(img, 0, 1)/m00; 16 | % 17 | % 18 | % See also 19 | % imEquivalentEllipse, imPrincipalAxes 20 | % 21 | 22 | % ------ 23 | % Author: David Legland 24 | % e-mail: david.legland@inra.fr 25 | % Created: 2008-10-08, using Matlab 7.4.0.287 (R2007a) 26 | % Copyright 2008 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas. 27 | 28 | % image dimension 29 | dim = size(img); 30 | Dx = dim(2); 31 | Dy = dim(1); 32 | 33 | % compute x and y for each pixel 34 | Ix = repmat((1:Dx), [Dy 1]); 35 | Iy = repmat((1:Dy)', [1 Dx]); 36 | 37 | % compute moment 38 | m = zeros(size(p)); 39 | for i=1:length(p(:)) 40 | m(i) = sum(Ix(:).^p(i) .* Iy(:).^q(i) .* img(:)); 41 | end 42 | -------------------------------------------------------------------------------- /matImage/imShapes/discretePoints.m: -------------------------------------------------------------------------------- 1 | function img = discretePoints(dim, points) 2 | %DISCRETEPOINTS Discretize a set of points 3 | % 4 | % IMG = discretePoints(DIM, PTS) 5 | % DIM is the size of image, with the format [x0 dx x1;y0 dy y1] 6 | % PTS is a Nx2 array of coordinate. 7 | % 8 | % IMG = discretePoints(DIM, BALL) 9 | % send parameters in a row vector, where BALL contains at least the 10 | % center coordinate, and possibly the other parameters. 11 | % 12 | % Example 13 | % img = discretePoints([1 1 100;1 1 100], [50 50;10 10;90 90;10 90;90 10]); 14 | % 15 | % See Also 16 | % imShapes, discretePolygon, discretePolyline 17 | % 18 | 19 | % ------ 20 | % Author: David Legland 21 | % e-mail: david.legland@inra.fr 22 | % Created: 2006-02-27 23 | % Copyright 2006 INRA - CEPIA Nantes - MIAJ (Jouy-en-Josas). 24 | 25 | % HISTORY 26 | 27 | x0 = dim(1,1); 28 | dx = dim(1,2); 29 | x1 = dim(1,3); 30 | y0 = dim(2,1); 31 | dy = dim(2,2); 32 | y1 = dim(2,3); 33 | 34 | nx = (x1-x0)/dx + 1; 35 | ny = (y1-y0)/dy + 1; 36 | 37 | img = false(ny, nx); 38 | 39 | for i=1:size(points, 1) 40 | ix = max(min(round((points(i,1)-x0)/dx), nx), 1); 41 | iy = max(min(round((points(i,2)-y0)/dy), ny), 1); 42 | img(iy, ix) = 1; 43 | end 44 | 45 | -------------------------------------------------------------------------------- /matImage/imShapes/private/composeTransforms3d.m: -------------------------------------------------------------------------------- 1 | function trans = composeTransforms3d(varargin) 2 | %COMPOSETRANSFORMS3D Concatenate several space transformations 3 | % 4 | % TRANS = composeTransforms3d(TRANS1, TRANS2, ...); 5 | % Computes the affine transform equivalent to performing successively 6 | % TRANS1, TRANS2, ... 7 | % 8 | % Example: 9 | % PTS = rand(20, 3); 10 | % ROT1 = createRotationOx(pi/3); 11 | % ROT2 = createRotationOy(pi/4); 12 | % ROT3 = createRotationOz(pi/5); 13 | % ROTS = composeTransforms3d(ROT1, ROT2, ROT3); 14 | % Then: 15 | % PTS2 = transformPoint3d(PTS, ROTS); 16 | % will give the same result as: 17 | % PTS3 = transformPoint3d(transformPoint3d(transformPoint3d(PTS, ... 18 | % ROT1), ROT2), ROT3); 19 | % 20 | % See also: 21 | % transforms3d, transformPoint3d 22 | % 23 | % --------- 24 | % 25 | % author : David Legland 26 | % INRA - TPV URPOI - BIA IMASTE 27 | % created the 29/29/2006. 28 | % 29 | 30 | trans = varargin{nargin}; 31 | for i=length(varargin)-1:-1:1 32 | trans = trans * varargin{i}; 33 | end 34 | -------------------------------------------------------------------------------- /matImage/imShapes/private/createTranslation.m: -------------------------------------------------------------------------------- 1 | function trans = createTranslation(varargin) 2 | %CREATETRANSLATION Create the 3*3 matrix of a translation 3 | % 4 | % TRANS = createTranslation(DX, DY); 5 | % Returns the translation corresponding to DX and DY. 6 | % The returned matrix has the form : 7 | % [1 0 TX] 8 | % [0 1 TY] 9 | % [0 0 1] 10 | % 11 | % TRANS = createTranslation(VECTOR); 12 | % Returns the matrix corresponding to a translation by the vector [x y]. 13 | % 14 | % 15 | % See also: 16 | % transforms2d, transformPoint, createRotation, createScaling 17 | % 18 | % --------- 19 | % author : David Legland 20 | % INRA - TPV URPOI - BIA IMASTE 21 | % created the 06/04/2004. 22 | % 23 | 24 | % HISTORY 25 | % 22/04/2009: rename as createTranslation 26 | 27 | % process input arguments 28 | if isempty(varargin) 29 | tx = 0; 30 | ty = 0; 31 | elseif length(varargin)==1 32 | var = varargin{1}; 33 | tx = var(1); 34 | ty = var(2); 35 | else 36 | tx = varargin{1}; 37 | ty = varargin{2}; 38 | end 39 | 40 | % create the matrix representing the translation 41 | trans = [1 0 tx ; 0 1 ty ; 0 0 1]; -------------------------------------------------------------------------------- /matImage/imShapes/private/deg2rad.m: -------------------------------------------------------------------------------- 1 | function rad = deg2rad(deg) 2 | %DEG2RAD Convert angle from degrees to radians 3 | % 4 | % Usage: 5 | % R = deg2rad(D) 6 | % convert an angle in degrees to an angle in radians. 7 | % 8 | % Example 9 | % deg2rad(180) % gives pi 10 | % ans = 11 | % 3.1416 12 | % deg2rad(60) % gives pi/3 13 | % ans = 14 | % 1.0472 15 | % 16 | % See Also 17 | % angles2d, rad2deg 18 | % 19 | % --------- 20 | % author : David Legland 21 | % INRA - TPV URPOI - BIA IMASTE 22 | % created the 09/12/2004. 23 | % 24 | 25 | rad = deg*pi/180; 26 | -------------------------------------------------------------------------------- /matImage/imShapes/private/rad2deg.m: -------------------------------------------------------------------------------- 1 | function deg = rad2deg(rad) 2 | %RAD2DEG Convert angle from radians to degrees 3 | % 4 | % Usage: 5 | % R = rad2deg(D) 6 | % convert an angle in radians to angle in degrees 7 | % 8 | % Example: 9 | % rad2deg(pi) 10 | % ans = 11 | % 180 12 | % rad2deg(pi/3) 13 | % ans = 14 | % 60 15 | % 16 | % See Also 17 | % angles2d, deg2rad 18 | % 19 | % --------- 20 | % author : David Legland 21 | % INRA - TPV URPOI - BIA IMASTE 22 | % created the 09/12/2004. 23 | % 24 | 25 | deg = rad*180/pi; 26 | -------------------------------------------------------------------------------- /matImage/imShapes/private/transforms2d.m: -------------------------------------------------------------------------------- 1 | function transforms2d(varargin) 2 | %TRANSFORMS2D Description of functions operating on transforms 3 | % 4 | % By 'transform' we mean an affine transform. A planar affine transform 5 | % can be represented by a 3x3 matrix. 6 | % 7 | % Example 8 | % % create a translation by the vector [10 20]: 9 | % T = createTranslation([10 20]) 10 | % T = 11 | % 1 0 10 12 | % 0 1 20 13 | % 0 0 1 14 | % 15 | % 16 | % See also: 17 | % createTranslation, createRotation, createRotation90, createScaling 18 | % createHomothecy, createLineReflection, createBasisTransform 19 | % transformPoint, transformVector, transformLine, transformEdge 20 | % rotateVector, fitAffineTransform2d 21 | % 22 | % ------ 23 | % Author: David Legland 24 | % e-mail: david.legland@grignon.inra.fr 25 | % Created: 2008-10-13, using Matlab 7.4.0.287 (R2007a) 26 | % Copyright 2008 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas. 27 | 28 | help('transforms2d'); -------------------------------------------------------------------------------- /matImage/imStacks/cropStack.m: -------------------------------------------------------------------------------- 1 | function res = cropStack(img, box) 2 | %CROPSTACK Crop a 3D image with the specified box limits 3 | % 4 | % RES = cropStack(IMG, BOX); 5 | % Crops the input image IMG with the bounds specified by BOX. 6 | % 7 | % Example 8 | % % display slice of a cropped stack 9 | % metadata = analyze75info('brainMRI.hdr'); 10 | % I = analyze75read(metadata); 11 | % % note: flip in the Y direction 12 | % I2 = cropStack(I, [10 100 10 100 5 20]); 13 | % figure; 14 | % subplot(121); imshow(I(:,:,13)); 15 | % subplot(122); imshow(I2(:,:,13)); 16 | % 17 | % See also 18 | % imStacks, rotateStack90, flipStack 19 | 20 | % ------ 21 | % Author: David Legland 22 | % e-mail: david.legland@inra.fr 23 | % Created: 2013-07-22, using Matlab 7.9.0.529 (R2009b) 24 | % http://www.pfl-cepia.inra.fr/index.php?page=slicer 25 | 26 | % compute ranges of indices 27 | lx = box(1):box(2); 28 | ly = box(3):box(4); 29 | lz = box(5):box(6); 30 | 31 | % check if image is color 32 | if length(size(img)) > 3 33 | res = img(ly, lx, :, lz); 34 | else 35 | res = img(ly, lx, lz); 36 | end 37 | -------------------------------------------------------------------------------- /matImage/imStacks/imMiddleSlice.m: -------------------------------------------------------------------------------- 1 | function slice = imMiddleSlice(img) 2 | %IMMIDDLESLICE Extract the middle slice of a 3D stack 3 | % 4 | % SLICE = imMiddleSlice(STACK) 5 | % 6 | % Example 7 | % imMiddleSlice 8 | % 9 | % See also 10 | % imStacks, stackSlice 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2018-06-05, using Matlab 9.4.0.813654 (R2018a) 16 | % Copyright 2018 INRA - Cepia Software Platform. 17 | 18 | switch ndims(img) 19 | case 3 20 | slice = img(:,:,round(size(img, 3) / 2)); 21 | case 4 22 | slice = img(:,:,:,round(size(img, 4) / 2)); 23 | otherwise 24 | error('Requires an input image with 3 or 4 dimensions'); 25 | end -------------------------------------------------------------------------------- /matImage/imStacks/isColorStack.m: -------------------------------------------------------------------------------- 1 | function color = isColorStack(img) 2 | %ISCOLORSTACK Check if a 3D stack is color or gray-scale 3 | % 4 | % COL = isColorStack(IMG) 5 | % Returns TRUE if the 3D image has a color dimension, or FASLE if the 6 | % image is gray scale image. 7 | % 8 | % This function was mainly created for simplifying the listings of other 9 | % functions in the same package. 10 | % 11 | % Example 12 | % img = analyze75read(analyze75info('brainMRI.hdr')); 13 | % isColorStack(img) 14 | % ans = 15 | % 0 16 | % 17 | % 18 | % 19 | % See also 20 | % 21 | % 22 | % ------ 23 | % Author: David Legland 24 | % e-mail: david.legland@grignon.inra.fr 25 | % Created: 2010-07-02, using Matlab 7.9.0.529 (R2009b) 26 | % http://www.pfl-cepia.inra.fr/index.php?page=slicer 27 | % Copyright 2010 INRA - Cepia Software Platform. 28 | 29 | dim = size(img); 30 | color = length(dim)>3; -------------------------------------------------------------------------------- /matImage/imStacks/private/getStackRotate90Params.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imStacks/private/getStackRotate90Params.m -------------------------------------------------------------------------------- /matImage/imStacks/slice3d.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/matImage/imStacks/slice3d.m -------------------------------------------------------------------------------- /matImage/mathConventions.m: -------------------------------------------------------------------------------- 1 | %MATHCONVENTIONS specifying mathematical conventions for IMAEL m-files 2 | % 3 | % Angles are counted in degrees, unless specified otherwise. 4 | % Many old functions use radians, so it is advised to always handle angle 5 | % data with care. 6 | % 7 | -------------------------------------------------------------------------------- /tests/imExplore/images/16c_Col0_607.lsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/images/16c_Col0_607.lsm -------------------------------------------------------------------------------- /tests/imExplore/images/densityMap1.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 20 40 40 4 | HeaderSize = 12 5 | ElementType = MET_FLOAT 6 | ElementByteOrderMSB = False 7 | ElementSpacing = 385.05 431.10 429.64 8 | Offset = -3872.37 -4680.01 2768.19 9 | ElementDataFile = densityMap1.vm 10 | -------------------------------------------------------------------------------- /tests/imExplore/images/densityMap1.vm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/images/densityMap1.vm -------------------------------------------------------------------------------- /tests/imExplore/images/img_10x10_gray8_Dir.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 10 10 4 | ElementType = MET_UCHAR 5 | BinaryData = true 6 | ElementByteOrderMSB = false 7 | ElementDataFile = img_10x10_gray8_Dir.raw 8 | -------------------------------------------------------------------------------- /tests/imExplore/images/img_10x10_gray8_Dir.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/images/img_10x10_gray8_Dir.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_FLOAT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Float32_rampXYZ_6x5x4_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_FLOAT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Float32_rampXYZ_6x5x4_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float32_rampXYZ_6x5x4_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXY_20x10_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_FLOAT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Float32_rampXY_20x10_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXY_20x10_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float32_rampXY_20x10_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXY_20x10_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_FLOAT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Float32_rampXY_20x10_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float32_rampXY_20x10_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float32_rampXY_20x10_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_DOUBLE 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Float64_rampXYZ_6x5x4_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_DOUBLE 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Float64_rampXYZ_6x5x4_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float64_rampXYZ_6x5x4_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXY_20x10_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_DOUBLE 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Float64_rampXY_20x10_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXY_20x10_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float64_rampXY_20x10_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXY_20x10_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_DOUBLE 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Float64_rampXY_20x10_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Float64_rampXY_20x10_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Float64_rampXY_20x10_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_SHORT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Int16_rampXYZ_6x5x4_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_SHORT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Int16_rampXYZ_6x5x4_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Int16_rampXYZ_6x5x4_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXY_20x10_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_SHORT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Int16_rampXY_20x10_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXY_20x10_lsb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXY_20x10_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_SHORT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Int16_rampXY_20x10_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int16_rampXY_20x10_msb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_INT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Int32_rampXYZ_6x5x4_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_INT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Int32_rampXYZ_6x5x4_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_Int32_rampXYZ_6x5x4_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXY_20x10_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_INT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_Int32_rampXY_20x10_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXY_20x10_lsb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXY_20x10_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_INT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_Int32_rampXY_20x10_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_Int32_rampXY_20x10_msb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_USHORT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_UInt16_rampXYZ_6x5x4_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_lsb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_lsb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_USHORT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_UInt16_rampXYZ_6x5x4_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_msb.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_UInt16_rampXYZ_6x5x4_msb.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXY_20x10_lsb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_USHORT 5 | ElementByteOrderMSB = false 6 | ElementDataFile = img_UInt16_rampXY_20x10_lsb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXY_20x10_lsb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXY_20x10_msb.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_USHORT 5 | ElementByteOrderMSB = true 6 | ElementDataFile = img_UInt16_rampXY_20x10_msb.raw 7 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt16_rampXY_20x10_msb.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXYZ_6x5x4.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_UCHAR 5 | BinaryData = true 6 | ElementByteOrderMSB = false 7 | ElementDataFile = img_UInt8_rampXYZ_6x5x4.raw 8 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXYZ_6x5x4.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_UInt8_rampXYZ_6x5x4.raw -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXYZ_6x5x4_Size123.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_UCHAR 5 | ElementSize = 1 2 3 6 | BinaryData = true 7 | ElementByteOrderMSB = false 8 | ElementDataFile = img_UInt8_rampXYZ_6x5x4.raw 9 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXYZ_6x5x4_Spacing123.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | DimSize = 6 5 4 4 | ElementType = MET_UCHAR 5 | ElementSpacing = 1 2 3 6 | BinaryData = true 7 | ElementByteOrderMSB = false 8 | ElementDataFile = img_UInt8_rampXYZ_6x5x4.raw 9 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXY_20x10.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 20 10 4 | ElementType = MET_UCHAR 5 | BinaryData = true 6 | ElementByteOrderMSB = false 7 | ElementDataFile = img_UInt8_rampXY_20x10.raw 8 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_UInt8_rampXY_20x10.raw: -------------------------------------------------------------------------------- 1 |  2 |  3 |  !"#$%&' !"#$%&'()*+,-./01()*+,-./0123456789:;23456789:;<=>?@ABCDE<=>?@ABCDEFGHIJKLMNOFGHIJKLMNOPQRSTUVWXYPQRSTUVWXYZ[\]^_`abcZ[\]^_`abcdefghijklm -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_rgb8_peppers.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 2 3 | DimSize = 512 384 4 | ElementType = MET_UCHAR 5 | ElementNumberOfChannels = 3 6 | BinaryData = true 7 | ElementByteOrderMSB = false 8 | ElementDataFile = img_RGB8_peppers.raw 9 | -------------------------------------------------------------------------------- /tests/imExplore/mhd_images/img_rgb8_peppers.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mhd_images/img_rgb8_peppers.raw -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-000.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-000.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-001.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-001.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-002.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-002.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-003.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-003.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-004.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-004.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-005.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-005.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-006.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-006.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-007.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-007.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-008.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-008.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-009.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-009.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-010.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-010.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-011.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-011.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-012.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-012.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-013.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-013.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-014.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-014.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-015.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-015.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-016.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-016.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-017.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-017.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-018.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-018.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-019.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-019.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-020.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-020.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-021.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-021.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-022.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-022.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-023.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-023.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-024.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-024.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-025.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-025.tif -------------------------------------------------------------------------------- /tests/imExplore/mriOverlay/mriOvr-026.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/mriOverlay/mriOvr-026.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-000.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-000.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-001.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-001.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-002.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-002.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-003.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-003.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-004.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-004.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-005.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-005.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-006.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-006.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-007.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-007.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-008.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-008.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-009.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-009.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-010.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-010.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-011.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-011.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-012.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-012.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-013.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-013.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-014.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-014.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-015.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-015.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-016.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-016.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-017.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-017.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-018.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-018.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-019.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-019.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-020.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-020.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-021.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-021.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-022.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-022.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-023.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-023.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-024.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-024.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-025.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-025.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-026.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-026.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-027.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-027.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-028.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-028.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-029.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-029.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-030.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-030.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-031.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-031.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-032.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-032.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-033.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-033.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-034.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-034.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-035.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-035.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-036.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-036.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-037.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-037.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-038.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-038.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-039.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-039.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-040.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-040.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-041.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-041.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-042.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-042.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-043.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-043.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-044.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-044.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-045.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-045.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-046.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-046.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-047.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-047.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-048.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-048.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-049.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-049.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-050.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-050.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-051.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-051.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-052.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-052.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-053.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-053.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-054.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-054.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-055.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-055.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-056.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-056.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-057.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-057.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-058.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-058.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-059.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-059.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-060.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-060.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-061.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-061.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-062.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-062.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-063.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-063.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-064.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-064.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-065.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-065.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-066.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-066.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-067.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-067.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-068.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-068.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-069.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-069.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-070.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-070.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-071.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-071.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-072.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-072.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-073.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-073.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-074.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-074.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-075.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-075.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-076.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-076.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-077.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-077.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-078.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-078.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-079.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-079.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-080.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-080.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-081.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-081.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-082.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-082.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-083.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-083.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-084.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-084.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-085.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-085.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-086.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-086.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-087.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-087.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-088.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-088.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-089.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-089.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-090.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-090.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-091.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-091.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-092.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-092.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-093.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-093.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-094.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-094.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-095.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1-095.tif -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1Pattern.mhd: -------------------------------------------------------------------------------- 1 | ObjectType = Image 2 | NDims = 3 3 | BinaryData = True 4 | DimSize = 96 96 96 5 | ElementSize = 333.3 333.3 333.3 6 | ElementType = MET_USHORT 7 | ElementByteOrderMSB = True 8 | ElementDataFile = BRNOR39e5p1-%03d.tif 0 95 1 9 | -------------------------------------------------------------------------------- /tests/imExplore/ratBrainMriSlices/BRNOR39e5p1stack.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imExplore/ratBrainMriSlices/BRNOR39e5p1stack.tif -------------------------------------------------------------------------------- /tests/imExplore/test_readVoxelMatrix.m: -------------------------------------------------------------------------------- 1 | function tests = test_readVoxelMatrix(varargin) 2 | %TEST_READVOXELMATRIX Test case for the file readVoxelMatrix 3 | % 4 | % Test case for the file readVoxelMatrix 5 | 6 | % Example 7 | % test_readVoxelMatrix 8 | % 9 | % See also 10 | % 11 | % 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@grignon.inra.fr 15 | % Created: 2012-07-24, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2012 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | 21 | function test_Simple(testCase) 22 | % Test call of function without argument 23 | 24 | fName = fullfile('images', 'densityMap1.vm'); 25 | img = readVoxelMatrix(fName); 26 | 27 | assertFalse(testCase, isempty(img)); 28 | -------------------------------------------------------------------------------- /tests/imExplore/test_stackSize.m: -------------------------------------------------------------------------------- 1 | function tests = test_stackSize(varargin) 2 | %TEST_STACKSIZE One-line description here, please. 3 | % 4 | % output = test_stackSize(input) 5 | % 6 | % Example 7 | % test_stackSize 8 | % 9 | % See also 10 | % 11 | % 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@grignon.inra.fr 15 | % Created: 2010-12-02, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2010 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | 21 | function test_grayStack(testCase) 22 | 23 | img = createTestImage; 24 | dim = stackSize(img); 25 | 26 | assertEqual(testCase, [10 15 20], dim); 27 | 28 | function test_colorStack(testCase) 29 | 30 | img = uint8(createTestImage); 31 | img = permute(img, [1 2 4 3]); 32 | rgb = cat(3, img, img, img); 33 | 34 | dim = stackSize(rgb); 35 | assertEqual(testCase, [10 15 20], dim); 36 | 37 | 38 | function img = createTestImage 39 | 40 | [x, y, z] = meshgrid(1:10, 1:15, 1:20); 41 | img = 5*x + 4*y + 3*z; 42 | 43 | -------------------------------------------------------------------------------- /tests/imFilters/test_gaussianKernel3d.m: -------------------------------------------------------------------------------- 1 | function tests = test_gaussianKernel3d(varargin) 2 | % Test suite for function gaussianKernel3d. 3 | % 4 | % output = test_gaussianKernel3d(input) 5 | % 6 | % Example 7 | % test_gaussianKernel3d 8 | % 9 | % See also 10 | % 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2010-10-11, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2010 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | 21 | function test_scalarSize(testCase) %#ok<*DEFNU> 22 | 23 | k = gaussianKernel3d(3, 2); 24 | 25 | assertEqual(testCase, [3 3 3], size(k)); 26 | assertEqual(testCase, 1, sum(k(:)), 'AbsTol', 1e-10); 27 | 28 | function test_vectorSize(testCase) 29 | 30 | k = gaussianKernel3d([7 7 5], 3); 31 | 32 | assertEqual(testCase, [7 7 5], size(k)); 33 | assertEqual(testCase, 1, sum(k(:)), 'AbsTol', 1e-10); 34 | 35 | function test_vectorSigma(testCase) 36 | 37 | k = gaussianKernel3d([7 7 5], [2 2 1]); 38 | 39 | assertEqual(testCase, [7 7 5], size(k)); 40 | assertEqual(testCase, 1, sum(k(:)), 'AbsTol', 1e-10); 41 | -------------------------------------------------------------------------------- /tests/imFilters/test_imAdjustDynamic.m: -------------------------------------------------------------------------------- 1 | function tests = test_imAdjustDynamic 2 | % Test suite for the file imAdjustDynamic. 3 | % 4 | % Test suite for the file imAdjustDynamic 5 | % 6 | % Example 7 | % test_imAdjustDynamic 8 | % 9 | % See also 10 | % imAdjustDynamic 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inrae.fr 15 | % Created: 2023-10-31, using Matlab 23.2.0.2409890 (R2023b) Update 3 16 | % Copyright 2023 INRAE - BIA-BIBS. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | function test_Simple(testCase) %#ok<*DEFNU> 21 | % Test call of function without argument. 22 | 23 | img = imread('rice.png'); 24 | res = imAdjustDynamic(img); 25 | 26 | assertTrue(testCase, isa(res, 'uint8')); 27 | assertEqual(testCase, min(res(:)), uint8(0)); 28 | assertEqual(testCase, max(res(:)), uint8(255)); 29 | 30 | 31 | function test_GetCoeffs(testCase) %#ok<*DEFNU> 32 | % Test call of function without argument. 33 | 34 | img = imread('rice.png'); 35 | [res, coeffs] = imAdjustDynamic(img); 36 | 37 | res2 = uint8(coeffs(1) + double(img) * coeffs(2)); 38 | 39 | assertTrue(testCase, all(res2(:) == res(:))); 40 | -------------------------------------------------------------------------------- /tests/imFilters/test_imDistance.m: -------------------------------------------------------------------------------- 1 | function tests = test_imDistance(varargin) 2 | % Test suite for function imDistance. 3 | % 4 | % Test case for the file imDistance 5 | % 6 | % Example 7 | % test_imDistance 8 | % 9 | % See also 10 | % 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2011-11-24, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2011 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | 21 | function test_Simple(testCase) %#ok<*DEFNU> 22 | % Test with image dimension and points coords 23 | dim = [10 15]; 24 | img = imDistance(dim, [2 3;5 8;3 6]); 25 | assertEqual(testCase, dim, size(img)); 26 | 27 | function test_PeriodicEdge(testCase) 28 | % Test with image dimension and points coords 29 | dim = [10 15]; 30 | img = imDistance(dim, [2 3;5 8;3 6], 'periodic'); 31 | assertEqual(testCase, dim, size(img)); 32 | 33 | 34 | function test_removeEdge(testCase) 35 | % Test with image dimension and points coords 36 | dim = [100 100]; 37 | img = imDistance(dim, [10 10;10 90;90 10;90 90;50 50], 'remove'); 38 | assertEqual(testCase, dim, size(img)); 39 | 40 | -------------------------------------------------------------------------------- /tests/imFilters/test_imDownSample.m: -------------------------------------------------------------------------------- 1 | function tests = test_imDownSample 2 | % Test suite for the file imDownSample. 3 | % 4 | % Test suite for the file imDownSample 5 | % 6 | % Example 7 | % test_imDownSample 8 | % 9 | % See also 10 | % imDownSample 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inrae.fr 15 | % Created: 2020-11-26, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2020 INRAE - BIA-BIBS. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | function test_gray2d(testCase) %#ok<*DEFNU> 21 | % Test call of function without argument. 22 | 23 | img = imread('rice.png'); 24 | 25 | img2 = imDownSample(img, 4); 26 | 27 | assertEqual(testCase, size(img2), size(img)/4); 28 | 29 | 30 | function test_Color2d(testCase) %#ok<*DEFNU> 31 | % Test call of function without argument. 32 | 33 | img = imread('peppers.png'); 34 | 35 | img2 = imDownSample(img, 4); 36 | 37 | assertEqual(testCase, size(img2, [1 2]), size(img, [1 2])/4); 38 | 39 | 40 | -------------------------------------------------------------------------------- /tests/imFilters/test_imMultiOtsuThreshold.m: -------------------------------------------------------------------------------- 1 | function tests = test_imMultiOtsuThreshold 2 | % Test suite for the file imMultiOtsuThreshold. 3 | % 4 | % Test suite for the file imMultiOtsuThreshold 5 | % 6 | % Example 7 | % test_imMultiOtsuThreshold 8 | % 9 | % See also 10 | % imMultiOtsuThreshold 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inrae.fr 15 | % Created: 2021-01-29, using Matlab 9.8.0.1323502 (R2020a) 16 | % Copyright 2021 INRAE - BIA-BIBS. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | function test_Simple(testCase) %#ok<*DEFNU> 21 | % Test call of function without argument. 22 | 23 | img = imread('cameraman.tif'); 24 | 25 | classes = imMultiOtsuThreshold(img, 3); 26 | 27 | assertEqual(testCase, size(classes), size(img)); 28 | 29 | -------------------------------------------------------------------------------- /tests/imMinkowski/test_imEuler1d.m: -------------------------------------------------------------------------------- 1 | function tests = test_imEuler1d(varargin) 2 | %TEST_IMEULER1D One-line description here, please. 3 | % 4 | % output = test_imEuler1d(input) 5 | % 6 | % Example 7 | % test_imEuler1d 8 | % 9 | % See also 10 | % 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2010-10-08, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2010 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | 21 | function testBasic(testCase) 22 | 23 | img = [0 0 1 1 1 0 1 0]; 24 | 25 | len = imEuler1d(img); 26 | 27 | exp = 2; 28 | assertEqual(testCase, exp, len); 29 | 30 | 31 | function testAddBorder(testCase) 32 | 33 | img = ones(1, 5); 34 | imgb = padarray(img, [0 1]); 35 | 36 | len = imEuler1d(img); 37 | len2 = imEuler1d(imgb); 38 | 39 | assertEqual(testCase, len, len2); 40 | 41 | 42 | function testCalib(testCase) 43 | 44 | img = [0 0 1 1 1 0 1 0]; 45 | 46 | len = imEuler1d(img, .4); 47 | 48 | exp = 2; 49 | assertEqual(testCase, exp, len); 50 | 51 | -------------------------------------------------------------------------------- /tests/imMinkowski/test_imLength.m: -------------------------------------------------------------------------------- 1 | function tests = test_imLength(varargin) 2 | %TEST_IMLENGTH One-line description here, please. 3 | % 4 | % output = test_imLength(input) 5 | % 6 | % Example 7 | % test_imLength 8 | % 9 | % See also 10 | % 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2010-10-08, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2010 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | function testBasic(testCase) 21 | 22 | img = [0 0 1 1 1 1 1 0]; 23 | 24 | len = imLength(img); 25 | exp = 5; 26 | assertEqual(testCase, exp, len); 27 | 28 | 29 | function testAddBorder(testCase) 30 | 31 | img = ones(1, 5); 32 | imgb = padarray(img, [0 1]); 33 | 34 | len = imLength(img); 35 | len2 = imLength(imgb); 36 | 37 | assertEqual(testCase, len, len2); 38 | 39 | 40 | function testCalib(testCase) 41 | 42 | img = [0 0 1 1 1 1 1 0]; 43 | 44 | len = imLength(img, .4); 45 | 46 | exp = 2; 47 | assertEqual(testCase, exp, len); 48 | 49 | -------------------------------------------------------------------------------- /tests/imQuantify/files/ellipsoid_Center30x27x25_Size20x12x8_Orient40x30x20.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mattools/matImage/0d74d73f9bb61f7b73d1075a8f63da33f8cddebd/tests/imQuantify/files/ellipsoid_Center30x27x25_Size20x12x8_Orient40x30x20.tif -------------------------------------------------------------------------------- /tests/imQuantify/test_imOrientedBox.m: -------------------------------------------------------------------------------- 1 | function tests = test_imOrientedBox(varargin) 2 | %TEST_IMORIENTEDBOX One-line description here, please. 3 | % 4 | % output = test_imOrientedBox(input) 5 | % 6 | % Example 7 | % test_imOrientedBox 8 | % 9 | % See also 10 | % 11 | 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@inra.fr 15 | % Created: 2017-11-25, using Matlab 8.6.0.267246 (R2015b) 16 | % Copyright 2017 INRA - Cepia Software Platform. 17 | 18 | tests = functiontests(localfunctions); 19 | 20 | function test_LabelImage_smallLabels(testCase) 21 | 22 | lbl = [0 0 0 0 0 0; ... 23 | 0 1 0 2 2 0;... 24 | 0 0 0 0 0 0; ... 25 | 0 3 0 4 4 0; ... 26 | 0 3 0 4 4 0; ... 27 | 0 0 0 0 0 0]; 28 | obox = imOrientedBox(lbl); 29 | 30 | assertEqual(testCase, [4 5], size(obox)); 31 | 32 | assertEqual(testCase, [1;2;2;2], obox(:,3)); 33 | 34 | -------------------------------------------------------------------------------- /tests/runAllTests.m: -------------------------------------------------------------------------------- 1 | function runAllTests(varargin) 2 | %RUNALLTESTS Explore all subdirectories, and run 'runtests' function 3 | % 4 | % output = runAllTests(input) 5 | % 6 | % Example 7 | % runAllTests 8 | % 9 | % See also 10 | % 11 | % 12 | % ------ 13 | % Author: David Legland 14 | % e-mail: david.legland@grignon.inra.fr 15 | % Created: 2011-07-20, using Matlab 7.9.0.529 (R2009b) 16 | % Copyright 2011 INRA - Cepia Software Platform. 17 | 18 | list = dir('.'); 19 | 20 | for i = 1:length(list) 21 | if ~list(i).isdir 22 | continue; 23 | end 24 | 25 | name = list(i).name; 26 | if length(name) < 3 27 | continue; 28 | end 29 | 30 | disp(['Running tests for directory: ' name]); 31 | 32 | cd(name); 33 | runtests; 34 | cd('..'); 35 | end 36 | 37 | --------------------------------------------------------------------------------