com.supermap.image.processing

类 ImageTools



  • public class ImageTools
    extends Object
    影像工具类
    • 构造器详细资料

      • ImageTools

        public ImageTools()
        构造一个新的 ImageTools 对象。
    • 方法详细资料

      • getLastError

        public String getLastError()
        获取最新的错误信息
        返回:
        最新的错误信息
      • computeCoverage

        public GeoRegion computeCoverage(DatasetImage datasetImage)
        计算影像范围
        参数:
        datasetImage - 待计算的影像数据集
        返回:
        影像范围
      • computeCoverages

        public DatasetVector computeCoverages(DatasetImage[] datasetImages,
                                              Datasource targetDatasource,
                                              String targetDatasetName)
        计算影像范围
        参数:
        datasetImages - 待计算的影像数据集数组
        targetDatasource - 结果保存数据源
        targetDatasetName - 结果数据集名称
        返回:
        结果数据集
      • computeFootprint

        public GeoRegion computeFootprint(DatasetImage datasetImage,
                                          int downSampleFactor)
        计算影像边界
        参数:
        datasetImage - 输入影像数据集
        downSampleFactor - 降采样系数. 在原有像素上除以该系数后对影像重采样进行提取有效范围
        返回:
        影像边界
      • computeFootprint

        public GeoRegion computeFootprint(DatasetImage datasetImage,
                                          int downSampleFactor,
                                          double noDataValue)
        计算影像边界
        参数:
        datasetImage - 输入影像数据集
        downSampleFactor - 降采样系数. 在原有像素上除以该系数后对影像重采样进行提取有效范围
        noDataValue - 影像无值
        返回:
        影像边界
      • computeFootprints

        public DatasetVector computeFootprints(DatasetImage[] datasetImages,
                                               int downSampleFactor,
                                               Datasource targetDatasource,
                                               String targetDatasetName,
                                               int parallelNumber)
        计算影像边界
        参数:
        datasetImages - 输入影像数据集数组
        downSampleFactor - 降采样系数. 在原有像素上除以该系数后对影像重采样进行提取有效范围
        targetDatasource - 结果数据源
        targetDatasetName - 结果数据集名称
        parallelNumber - 并行数目
        返回:
        影像边界
      • computeFootprints

        public DatasetVector computeFootprints(DatasetImage[] datasetImages,
                                               int downSampleFactor,
                                               Datasource targetDatasource,
                                               String targetDatasetName,
                                               int parallelNumber,
                                               double noDataValue)
        计算影像边界
        参数:
        datasetImages - 输入影像数据集数组
        downSampleFactor - 降采样系数. 在原有像素上除以该系数后对影像重采样进行提取有效范围
        targetDatasource - 结果数据源
        targetDatasetName - 结果数据集名称
        parallelNumber - 并行数目
        noDataValue - 影像无值、背景值
        返回:
        影像边界
      • computeFootprints

        public DatasetVector computeFootprints(DatasetImage[] datasetImages,
                                               int downSampleFactor,
                                               Datasource targetDatasource,
                                               String targetDatasetName)
        计算影像边界
        参数:
        datasetImages - 输入影像数据集数组
        downSampleFactor - 降采样系数. 在原有像素上除以该系数后对影像重采样进行提取有效范围
        targetDatasource - 结果数据源
        targetDatasetName - 结果数据集名称
        返回:
        影像边界
      • imageToLonLat

        public DatasetVector imageToLonLat(String rpcFilesPath,
                                           ElevInterpolator elevInterpolator,
                                           DatasetVector datasetVector,
                                           String imageNameField,
                                           String pointXField,
                                           String pointYField,
                                           String resultFieldPrefix)
        像方转物方坐标
        参数:
        rpcFilesPath - RPC文件路径
        elevInterpolator - 高程插值器
        datasetVector - 输入点数据集
        imageNameField - 影像名称字段
        pointXField - X坐标字段名称
        pointYField - Y坐标字段名称
        resultFieldPrefix - 结果字段名称前缀
        返回:
        结果数据集
      • lonLatToImage

        public DatasetVector lonLatToImage(String rpcFilesPath,
                                           DatasetVector datasetVector,
                                           String imageNameField,
                                           String pointXField,
                                           String pointYField,
                                           String pointZField,
                                           String resultFieldPrefix)
        物方转像方坐标
        参数:
        rpcFilesPath - RPC文件路径
        datasetVector - 输入点数据集
        imageNameField - 影像名称字段
        pointXField - X坐标字段名称
        pointYField - Y坐标字段名称
        pointZField - Z坐标字段名称
        resultFieldPrefix - 结果字段名称前缀
        返回:
        结果数据集
      • imageToLonLat

        public boolean imageToLonLat(DatasetImage[] images,
                                     DatasetVector nameIndicesDataset,
                                     DatasetVector gcpDatasetVector,
                                     DatasetVector tpDatasetVector,
                                     ElevInterpolator elevInterpolator)
        控制点和连接点像方转物方坐标
        参数:
        images - 影像数据集数组
        nameIndicesDataset - 名称索引数据集. 由影像匹配功能生成
        gcpDatasetVector - 地面控制点数据集. 由影像匹配功能生成
        tpDatasetVector - 连接点数据集. 由影像匹配功能生成
        elevInterpolator - 高程插值器
        返回:
        是否转换成功。
      • lonLatToImage

        public DatasetVector lonLatToImage(DatasetImage[] images,
                                           DatasetVector nameIndicesDataset,
                                           DatasetVector datasetVector,
                                           String pointXField,
                                           String pointYField,
                                           String pointZField,
                                           String resultFieldPrefix)
        控制点和连接点物方转像方坐标
        参数:
        images - 影像数据集数组
        nameIndicesDataset - 名称索引数据集. 由影像匹配功能生成
        datasetVector - 输入点数据集
        pointXField - X坐标字段名称
        pointYField - Y坐标字段名称
        pointZField - Z坐标字段名称
        resultFieldPrefix - 结果字段名称前缀
        返回:
        结果数据集
      • getSensorCategoryFileSuffix

        @Deprecated
        public String[] getSensorCategoryFileSuffix(SensorCategory sensorCategory)
        已过时。 
        获取影像传感器的文件后缀名称数组
        参数:
        sensorCategory - 影像传感器
        返回:
        文件后缀名称数组
      • pairImageName

        public Map<Integer,Integer> pairImageName(DatasetImage[] muxDatasets,
                                                  DatasetImage[] panDatasets)
        影像名称配对
        参数:
        muxDatasets - 多光谱数据集数组
        panDatasets - 全色数据集数组
        返回:
        配对结果
      • pairImageName

        @Deprecated
        public PairImageNameResult[][] pairImageName(String[] imageNames)
        已过时。 
        影像名称配对

        当影像名称不符合卫星命名规范,影像名称配对结果为:影像名称索引 + SensorCategory.USERDEFINE + CameraType.UNSUPPORTED 当影像名称没有配对成功时,该名称单独组成一景影像。 当影像名称存在多对配对时,所有属于同一景影像的配对结果组成一景影像。

        参数:
        imageNames - 影像名称数组
        返回:
        配对结果二维数组.
      • pairImageName2

        public Map<Integer,List<Integer>> pairImageName2(String[] imageNames)
        影像名称配对
        参数:
        imageNames - 影像名称数组
        返回:
        返回一个映射,key值为分组id, value 值为属于同一组的影像名称在原始影像名称中的索引列表
      • sensorCategoryFromImageName

        public SensorCategory sensorCategoryFromImageName(DatasetImage sourceDatasetImage)
        根据影像名称获取影像传感器类型
        参数:
        sourceDatasetImage - 源数据集
        返回:
        影像传感器类型。
      • sensorCategoryFromImageName

        public SensorCategory sensorCategoryFromImageName(String imageName)
        根据影像名称获取影像传感器类型
        参数:
        imageName - 源数据集名称
        返回:
        影像传感器类型。
      • cameraTypeFromImageName

        public CameraType cameraTypeFromImageName(DatasetImage sourceDatasetImage)
        根据影像名称获取相机类型
        参数:
        sourceDatasetImage - 源数据集
        返回:
        相机类型。
      • cameraTypeFromImageName

        public CameraType cameraTypeFromImageName(String imageName)
        根据影像名称获取相机类型
        参数:
        imageName - 源数据集名称
        返回:
        相机类型。
      • queryIntersectImagePath

        public String[] queryIntersectImagePath(DatasetMosaic refDatasetMosaic,
                                                Dataset queryDataset)
        查询相交影像径,用于在大范围参考底图中查询同被查询影像相交文件路径
        参数:
        refDatasetMosaic - 参考镶嵌数据集,一般为大范围底图,被查询对象
        queryDataset - 查询数据集
        返回:
        相交文件路径集合
      • intersectImageCoverage

        public Map<Integer,List<Integer>> intersectImageCoverage(DatasetImage[] sourceDatasetImages,
                                                                 DatasetImage[] referenceImages)
        查询相交影像
        参数:
        sourceDatasetImages - 查询影像数据集数组
        referenceImages - 参考影像数组
        返回:
        查询相交影像结果
      • resolutionInMeter

        public double[] resolutionInMeter(RPCTransformer rpcTransformer)
        通过rpc计算影像分辨率
        参数:
        rpcTransformer - 影像rpc
        返回:
        影像x与y方向上的分辨率,单位米
      • resolutionInDegree

        public double[] resolutionInDegree(RPCTransformer rpcTransformer)
        通过rpc计算影像分辨率
        参数:
        rpcTransformer - 影像rpc
        返回:
        影像x与y方向上的分辨率,单位度
      • resampleImage

        public DatasetImage[] resampleImage(DatasetImage[] datasetImages,
                                            double resolution,
                                            String outputDirectory,
                                            ImageOutputOption outputOption,
                                            int parallelNumber)
        遥感影像重采样
        参数:
        datasetImages - 输入的遥感影像数组
        resolution - 分辨率
        outputDirectory - 输出文件路径
        outputOption - 输出结果参数设置
        parallelNumber - 并行数目
        返回:
        结果数据集
      • clipImage

        public DatasetImage clipImage(DatasetImage datasetImage,
                                      Rectangle2D rectClip,
                                      ElevationData elevationData,
                                      String outputFilePath,
                                      ImageOutputOption outputOption)
        遥感影像裁剪
        参数:
        datasetImage - 输入的遥感影像
        rectClip - 裁剪范围
        elevationData - 高程数据
        outputFilePath - 输出文件路径
        outputOption - 输出结果参数设置
        返回:
        结果数据集
      • clipImage

        public DatasetImage clipImage(DatasetImage datasetImage,
                                      GeoRegion[] clipRegions,
                                      ElevationData elevationData,
                                      String outputFilePath,
                                      ImageOutputOption outputOption)
        遥感影像裁剪
        参数:
        datasetImage - 输入的遥感影像
        clipRegions - 裁剪范围几何对象数组
        elevationData - 高程数据
        outputFilePath - 输出文件路径
        outputOption - 输出结果参数设置
        返回:
        结果数据集
      • clipImage

        public DatasetImage[] clipImage(DatasetImage[] datasetImages,
                                        DatasetVector clipDataset,
                                        ElevationData elevationData,
                                        String outputDirectory,
                                        ImageOutputOption outputOption,
                                        int parallelNumber)
        遥感影像裁剪
        参数:
        datasetImages - 输入的遥感影像数组
        clipDataset - 裁剪数据集
        elevationData - 高程数据
        outputDirectory - 输出文件夹
        outputOption - 输出结果参数设置
        parallelNumber - 并行数目
        返回:
        结果数据集
      • estimateImgDatasetSize

        public BigInteger estimateImgDatasetSize(DatasetImage datasetImage)
        估算数据集大小
        参数:
        datasetImage - 源数据集
        返回:
        数据集大小,单位:字节。
      • modifyImageNoValueInfo

        public String[] modifyImageNoValueInfo(String[] filePathList,
                                               boolean isSetNoValue,
                                               double noValue)
        修改无值信息,可以删除无值,或修改无值指定,不改变原来无值像素值
        参数:
        filePathList - 输入文件列表
        isSetNoValue - 是否输出无值
        noValue - 无值指定,当isSetNoValue为true时生效
        返回:
        成功返回文件数组
      • computeEdgeMatchingTasks

        public int[][] computeEdgeMatchingTasks(DatasetImage[] sourceImages,
                                                Boolean isSaveRepeated,
                                                PrjCoordSys targetPrj)
                                         throws NullPointerException
        根据影像接边关系计算任务

        根据输入影像的相交关系,返回的结果数组为一个二维数组,结果数组的长度与输入原始影像数组长度相等。 结果数组每个结果为一个一维数组,存储对应接边影像的位置索引,如果没有找到相交的影像,则为空

        参数:
        sourceImages - 待处理的影像
        isSaveRepeated - 是否保存重复id,例如,如果有A、B、C影像,A与B、A与C、B与C都相交,如果 isSaveRepeated 为 false,则输出 A->[B,C], B->[C];如果 isSaveRepeated 为 true,则输出 A->[B,C],B->[A,C], C->[A,B]
        targetPrj - 目标坐标系,如果为空,使用影像坐标系。当影像的坐标不一致时,请指定一个目标坐标系
        返回:
        任务列表
        抛出:
        NullPointerException - sourceImages 为空
        从以下版本开始:
        12.0.0版本
      • computeReferenceMatchingTasks

        public int[][] computeReferenceMatchingTasks(DatasetImage[] sourceImages,
                                                     DatasetImage[] referenceImages,
                                                     PrjCoordSys targetPrj)
                                              throws NullPointerException
        根据输入影像与参考影像相交关系计算任务

        根据输入影像与参考影像的相交关系,构建影像的参考影像的关系。返回的结果数组为一个二维数组,结果数组的长度与输入原始影像数组长度相等。 结果数组每个结果为一个一维数组,存储对应参考影像的位置索引,如果没有找到相交的参考影像,则为空

        参数:
        sourceImages - 待处理的影像
        referenceImages - 参考影像
        targetPrj - 目标坐标系,如果为空,使用影像坐标系。当影像的坐标不一致时,请指定一个目标坐标系
        返回:
        任务列表
        抛出:
        NullPointerException - sourceImages 为空
        NullPointerException - referenceImages 为空
        从以下版本开始:
        12.0.0版本
      • correctImageSpecifiedValues

        public DatasetImage[] correctImageSpecifiedValues(DatasetImage[] datasetImages,
                                                          DatasetImage[] maskDatasets,
                                                          boolean isDetectNoData,
                                                          double noDataCorrectValue,
                                                          Map<Double,Double> correctTable,
                                                          boolean isBindBand,
                                                          String outputDirectory,
                                                          ImageOutputOption outputOption,
                                                          int parallelNumber)
        修改影像范围内的值。
        参数:
        datasetImages - 源影像数据集集合(必填)。
        maskDatasets - 掩膜数据集集合(非必填),如果不设掩膜自动查找指定值并替换,设了掩膜则只替换掩膜内的值。
        isDetectNoData - 是否查找无值。
        noDataCorrectValue - 无值替换的值。
        correctTable - 修改对照表。
        isBindBand - 是否绑定波段,true表示所有波段为同一修改值才替换,false表示任一波段为替换值就仅替换该波段。
        outputDirectory - 输出文件夹(必填)。
        outputOption - 输出结果参数设置。
        parallelNumber - 并行数(必填)。
        返回:
        结果影像数据集集合。
        抛出:
        NullPointerException - datasetImages为空。
        NullPointerException - outputDirectory为空。
        RuntimeException - 程序底层执行报错。
        从以下版本开始:
        12.0版本。
      • detectImageSpecifiedValues

        public DatasetImage[] detectImageSpecifiedValues(DatasetImage[] datasetImages,
                                                         boolean isDetectNoData,
                                                         double[] specifiedValues,
                                                         boolean isBindBand,
                                                         String outputDirectory,
                                                         int parallelNumber)
        查找影像有效范围内指定值,并返回掩膜。
        参数:
        datasetImages - 源影像数据集集合(必填)。
        isDetectNoData - 是否修改无值。
        specifiedValues - 查找值。
        isBindBand - 是否绑定波段,true表示所有波段为同一修改值才替换,false表示任一波段为替换值就仅替换该波段。
        outputDirectory - 输出文件夹(必填)。
        parallelNumber - 并行数(必填)。
        返回:
        结果掩膜影像数据集集合,掩膜值为1代表有查找值。
        抛出:
        NullPointerException - datasetImages为空。
        NullPointerException - outputDirectory为空。
        RuntimeException - 程序底层执行报错。
        从以下版本开始:
        12.0版本。
      • addSteppedListener

        public void addSteppedListener(SteppedListener l)
        添加一个进度条事件 SteppedEvent 的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public void removeSteppedListener(SteppedListener l)
        移除一个进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。

Copyright © 2021–2025 SuperMap. All rights reserved.