gpt4 book ai didi

java.lang.ClassNotFoundException : it. geosolutions.jaiext.range.Range

转载 作者:行者123 更新时间:2023-12-02 03:27:17 28 4
gpt4 key购买 nike

我最近开始使用 GeoTools 开始我的第一个程序,其中我还使用了 JAI-Java Advanced Imaging。我发现以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: it/geosolutions/jaiext/range/Range at it.geosolutions.jaiext.crop.CropDescriptor.(CropDescriptor.java:62) at it.geosolutions.jaiext.crop.CropSpi.updateRegistry(CropSpi.java:56) at javax.media.jai.OperationRegistry.registerServices(OperationRegistry.java:2056) at javax.media.jai.ThreadSafeOperationRegistry.registerServices(ThreadSafeOperationRegistry.java:620) at javax.media.jai.OperationRegistry.initializeRegistry(OperationRegistry.java:373) at javax.media.jai.JAI.(JAI.java:566) at com.rgb.NDRI.createNDI(NDRI.java:17) at com.rgb.RGBSpliter.main(RGBSpliter.java:71) Caused by: java.lang.ClassNotFoundException: it.geosolutions.jaiext.range.Range at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 8 more

以上是我在控制台中看到的内容。我不知道 geotools 14.4 中的所有 jar 中缺少哪个 jar。

代码如下

 package com.rgb;
import java.awt.image.DataBuffer;
import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.media.jai.*;

public class NDRI {
public void createNDI(String file1,String file2) throws IOException{
// First we open the input images. We assume that each band is in a separate file.
// We assume that the first image is a near infrared one and that the second is
// a visible red image -- if you're using Landsat images, those will be bands
// 4 and 3, respectively.
PlanarImage iNIR = JAI.create("fileload",file1);
PlanarImage iVIS = JAI.create("fileload",file2);
// The pixels on those images must be processed as floating-point values!
ParameterBlock pbConvert = new ParameterBlock();
pbConvert.addSource(iNIR);
pbConvert.add(DataBuffer.TYPE_DOUBLE);
PlanarImage NIR = JAI.create("format", pbConvert);
pbConvert = new ParameterBlock();
pbConvert.addSource(iVIS);
pbConvert.add(DataBuffer.TYPE_DOUBLE);
PlanarImage VIS = JAI.create("format", pbConvert);
// Calculate the denominator (NIR-VIS).
ParameterBlock pbd = new ParameterBlock();
pbd.addSource(NIR);
pbd.addSource(VIS);
PlanarImage denominator = JAI.create("subtract",pbd);
// Calculate the numerator (NIR+VIS).
ParameterBlock pbn = new ParameterBlock();
pbn.addSource(NIR);
pbn.addSource(VIS);
PlanarImage numerator = JAI.create("add",pbd);
// Calculate the NDVI.
ParameterBlock pbNDVI = new ParameterBlock();
pbNDVI.addSource(denominator);
pbNDVI.addSource(numerator);
RenderedImage ndvi = JAI.create("divide",pbNDVI);
String format="png";
ImageIO.write(ndvi, format, new File("E:/ndvi_output.png"));

// Create a GUI to show it.
/* JFrame frame = new JFrame("NDVI image");
DisplayNBImage disp = new DisplayNBImage(ndvi);
frame.add(new JScrollPane(disp));
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);*/

/* PlanarImage iNIR = JAI.create("fileload","E:/output/image_red.png");
PlanarImage iVIS = JAI.create("fileload","E:/output/image_green.png");
// The pixels on those images must be processed as floating-point values!
ParameterBlock pbConvert = new ParameterBlock();
pbConvert.addSource(iNIR);
pbConvert.add(DataBuffer.TYPE_DOUBLE);
PlanarImage NIR = JAI.create("format", pbConvert);
pbConvert = new ParameterBlock();
pbConvert.addSource(iVIS);
pbConvert.add(DataBuffer.TYPE_DOUBLE);
PlanarImage VIS = JAI.create("format", pbConvert);
// Calculate the denominator (NIR-VIS).
ParameterBlock pbd = new ParameterBlock();
pbd.addSource(NIR);
pbd.addSource(VIS);
PlanarImage denominator = JAI.create("subtract",pbd);
// Calculate the numerator (NIR+VIS).
ParameterBlock pbn = new ParameterBlock();
pbn.addSource(NIR);
pbn.addSource(VIS);
PlanarImage numerator = JAI.create("add",pbd);
// Calculate the NDVI.
ParameterBlock pbNDVI = new ParameterBlock();
pbNDVI.addSource(denominator);
pbNDVI.addSource(numerator);
PlanarImage ndvi = JAI.create("divide",pbNDVI);
double[][] matrix1 = {{ 1./3, 1./3, 1./3, 0 }};
ParameterBlock pb = new ParameterBlock();
pb.addSource(ndvi);
pb.add(matrix1);*/

/* PlanarImage dst = (PlanarImage) JAI.create("bandCombine",pb);



BufferedImage img = dst.getAsBufferedImage();
ImageIO.write(img, format, new File("E:/output/ndvi_output.png"));
System.out.println("ndvi gray scale image created");*/
}
}

最佳答案

我在这里找到了缺少的 Range 类: https://github.com/geosolutions-it/jai-ext/tree/master/jt-utilities/src/main/java/it/geosolutions/jaiext/range

因此,尝试将 jt-utilities 和 jt-iterators 添加到您的项目中。

关于java.lang.ClassNotFoundException : it. geosolutions.jaiext.range.Range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651560/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com