gpt4 book ai didi

java - 用java获取特征值PCA

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:13 27 4
gpt4 key购买 nike

我尝试使用 PCA 来减少维度,并使用 jama 来帮助我使用矩阵。但是,当我用 jama 获取特征值时遇到问题。例如我有2个图像尺寸100x100,然后我创建单个矩阵2图像x(100x100)。有 20,000 像素。以及如何减少特征值?这是我的代码示例:

public static void main(String[] args) {
BufferedImage bi;
int[] rgb;
int R, G, B;
// int[] jum;
double[][] gray = new double[500][500] ;
String[] baris = new String[1000];
try {
//bi = ImageIO.read(new File("D:\\c.jpg"));
int[][] pixelData = new int[bi.getHeight() * bi.getWidth()][3];

int counter = 0;
for (int i = 0; i < bi.getHeight(); i++) {
for (int j = 0; j < bi.getWidth(); j++) {
gray[i][j] = getPixelData(bi, i, j);
// R = getR(bi, i, j);
//G = getG(bi, i, j);
//B = getB(bi, i, j);
//jum = R + G + B;
// gray[counter] = Double.toString(R + G + B / 3);
// System.out.println("Gray " +gray);
//for (int k = 0; k < rgb.length; k++) {
// pixelData[counter][k] = rgb[k];
// }

counter++;
}
}


} catch (IOException e) {
e.printStackTrace();
}
Matrix matrix = new Matrix(gray);
PCA pca = new PCA(matrix);
pca.getEigenvalue(6);
String n = pca.toString();
System.err.println("nilai n "+n);
//double dete = pcadete(matrix,3600);
}

private static int getPixelData(BufferedImage bi, int x, int y) {
int argb = bi.getRGB(y, x);
int r, g, b;
int gray;
int rgb[] = new int[]{
(argb >> 16) & 0xff, //red
(argb >> 8) & 0xff, //green
(argb) & 0xff //blue
};
r = rgb[0];
g = rgb[1];
b = rgb[2];

gray = (r + g + b) / 3;
System.out.println("gray: " + gray);
return gray;
}

当我在此代码中显示特征值时:

PCA pca = new PCA(matrix);
pca.getEigenvalue(6);
String n = pca.toString();
System.err.println("nilai n "+n);

结果是:

nilai n PCA@c3e9e9

你能告诉我如何获得特征值和降维吗?

最佳答案

您看到对象输出是因为 PCA 类中似乎没有 toString 实现来以漂亮的方式打印它。

如果您拥有 PCA 类,那么您可以重写 toString 方法以按照您想要的方式打印它。如果您使用的是 eclipse,则可以通过右键单击 PCA 类 -> 源 -> 生成 toStirng 来生成该方法。

或者尝试使用 getter 来打印它,例如:

System.err.println("nilai n "+ n.getEigenvalue());.

顺便说一句,分享你的 PCA 类(class)会有更多帮助。

关于java - 用java获取特征值PCA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386083/

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