@Override
public void execute(Raster raster, Map<Key, Serializable> params,Hints hints, ProgressListener listener) {
double[] minMax = null;
if(params != null){
if(params.containsKey(KEY_MINMAX)){
minMax = (double[]) params.get(KEY_MINMAX);
}
}
final int raster_width = raster.getDimension().width();
final int raster_height = raster.getDimension().height();
final int pixelAmount = raster_width * raster_height;
if(minMax == null){
final Mat srcMat = matAccordingToDatatype(
raster.getBands().get(0).datatype(),
raster.getData(),
raster_width,
raster_height);
MinMaxLocResult result = Core.minMaxLoc(srcMat);
minMax = new double[]{result.minVal, result.maxVal};
}
int[] pixels = new int[pixelAmount];
final ByteBufferReader reader = new ByteBufferReader(raster.getData().array(), ByteOrder.nativeOrder());
// Log.d(OpenCVAmplitudeRescaler.class.getSimpleName(), "rawdata min "+minMax[0] +" max "+minMax[1]);
for (int i = 0; i < pixelAmount; i++) {
double d = ByteBufferReaderUtil.getValue(reader, raster.getBands().get(0).datatype());
pixels[i] = pixelValueForGrayScale(d, minMax[0], minMax[1]);
}
ByteBuffer buffer = ByteBuffer.allocate(pixels.length * 4);
buffer.asIntBuffer().put(pixels);
raster.setData(buffer);
}
OpenCVAmplitudeRescaler.java 文件源码
java
阅读 23
收藏 0
点赞 0
评论 0
项目:rastertheque
作者:
评论列表
文章目录