com.supermap.image.processing
类 ImageTools
- java.lang.Object
-
- com.supermap.image.processing.ImageTools
-
public class ImageTools extends Object
影像工具类
-
-
构造器概要
构造器 构造器和说明 ImageTools()
构造一个新的 ImageTools 对象。
-
方法概要
所有方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 void
addSteppedListener(SteppedListener l)
添加一个进度条事件 SteppedEvent 的监听器。CameraType
cameraTypeFromImageName(DatasetImage sourceDatasetImage)
根据影像名称获取相机类型CameraType
cameraTypeFromImageName(String imageName)
根据影像名称获取相机类型DatasetImage[]
clipImage(DatasetImage[] datasetImages, DatasetVector clipDataset, ElevationData elevationData, String outputDirectory, ImageOutputOption outputOption, int parallelNumber)
遥感影像裁剪DatasetImage
clipImage(DatasetImage datasetImage, GeoRegion[] clipRegions, ElevationData elevationData, String outputFilePath, ImageOutputOption outputOption)
遥感影像裁剪DatasetImage
clipImage(DatasetImage datasetImage, Rectangle2D rectClip, ElevationData elevationData, String outputFilePath, ImageOutputOption outputOption)
遥感影像裁剪GeoRegion
computeCoverage(DatasetImage datasetImage)
计算影像范围DatasetVector
computeCoverages(DatasetImage[] datasetImages, Datasource targetDatasource, String targetDatasetName)
计算影像范围int[][]
computeEdgeMatchingTasks(DatasetImage[] sourceImages, Boolean isSaveRepeated, PrjCoordSys targetPrj)
根据影像接边关系计算任务 根据输入影像的相交关系,返回的结果数组为一个二维数组,结果数组的长度与输入原始影像数组长度相等。GeoRegion
computeFootprint(DatasetImage datasetImage, int downSampleFactor)
计算影像边界GeoRegion
computeFootprint(DatasetImage datasetImage, int downSampleFactor, double noDataValue)
计算影像边界DatasetVector
computeFootprints(DatasetImage[] datasetImages, int downSampleFactor, Datasource targetDatasource, String targetDatasetName)
计算影像边界DatasetVector
computeFootprints(DatasetImage[] datasetImages, int downSampleFactor, Datasource targetDatasource, String targetDatasetName, int parallelNumber)
计算影像边界DatasetVector
computeFootprints(DatasetImage[] datasetImages, int downSampleFactor, Datasource targetDatasource, String targetDatasetName, int parallelNumber, double noDataValue)
计算影像边界int[][]
computeReferenceMatchingTasks(DatasetImage[] sourceImages, DatasetImage[] referenceImages, PrjCoordSys targetPrj)
根据输入影像与参考影像相交关系计算任务 根据输入影像与参考影像的相交关系,构建影像的参考影像的关系。DatasetImage[]
correctImageSpecifiedValues(DatasetImage[] datasetImages, DatasetImage[] maskDatasets, boolean isDetectNoData, double noDataCorrectValue, Map<Double,Double> correctTable, boolean isBindBand, String outputDirectory, ImageOutputOption outputOption, int parallelNumber)
修改影像范围内的值。DatasetImage[]
detectImageSpecifiedValues(DatasetImage[] datasetImages, boolean isDetectNoData, double[] specifiedValues, boolean isBindBand, String outputDirectory, int parallelNumber)
查找影像有效范围内指定值,并返回掩膜。BigInteger
estimateImgDatasetSize(DatasetImage datasetImage)
估算数据集大小String
getLastError()
获取最新的错误信息String[]
getSensorCategoryFileSuffix(SensorCategory sensorCategory)
已过时。boolean
imageToLonLat(DatasetImage[] images, DatasetVector nameIndicesDataset, DatasetVector gcpDatasetVector, DatasetVector tpDatasetVector, ElevInterpolator elevInterpolator)
控制点和连接点像方转物方坐标DatasetVector
imageToLonLat(String rpcFilesPath, ElevInterpolator elevInterpolator, DatasetVector datasetVector, String imageNameField, String pointXField, String pointYField, String resultFieldPrefix)
像方转物方坐标Map<Integer,List<Integer>>
intersectImageCoverage(DatasetImage[] sourceDatasetImages, DatasetImage[] referenceImages)
查询相交影像DatasetVector
lonLatToImage(DatasetImage[] images, DatasetVector nameIndicesDataset, DatasetVector datasetVector, String pointXField, String pointYField, String pointZField, String resultFieldPrefix)
控制点和连接点物方转像方坐标DatasetVector
lonLatToImage(String rpcFilesPath, DatasetVector datasetVector, String imageNameField, String pointXField, String pointYField, String pointZField, String resultFieldPrefix)
物方转像方坐标String[]
modifyImageNoValueInfo(String[] filePathList, boolean isSetNoValue, double noValue)
修改无值信息,可以删除无值,或修改无值指定,不改变原来无值像素值Map<Integer,Integer>
pairImageName(DatasetImage[] muxDatasets, DatasetImage[] panDatasets)
影像名称配对PairImageNameResult[][]
pairImageName(String[] imageNames)
已过时。Map<Integer,List<Integer>>
pairImageName2(String[] imageNames)
影像名称配对String[]
queryIntersectImagePath(DatasetMosaic refDatasetMosaic, Dataset queryDataset)
查询相交影像径,用于在大范围参考底图中查询同被查询影像相交文件路径void
removeSteppedListener(SteppedListener l)
移除一个进度条事件(SteppedEvent)的监听器。DatasetImage[]
resampleImage(DatasetImage[] datasetImages, double resolution, String outputDirectory, ImageOutputOption outputOption, int parallelNumber)
遥感影像重采样double[]
resolutionInDegree(RPCTransformer rpcTransformer)
通过rpc计算影像分辨率double[]
resolutionInMeter(RPCTransformer rpcTransformer)
通过rpc计算影像分辨率SensorCategory
sensorCategoryFromImageName(DatasetImage sourceDatasetImage)
根据影像名称获取影像传感器类型SensorCategory
sensorCategoryFromImageName(String imageName)
根据影像名称获取影像传感器类型
-
-
-
方法详细资料
-
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.