我试着了解pca是如何工作的。我写了一个代码,但是当我使用PCACompute时我遇到了问题,它没有输出数据。有人帮我吗? 感谢。
Mat mat = new Mat(5, 1, CvType.CV_32FC3);
mat.put(0,0,new float[]{10.0f,5.0f,0.8f});
mat.put(1,0,new float[]{20.9f,9.2f,0.9f});
mat.put(2,0,new float[]{2.7f,4.8f,0.7f});
mat.put(3,0,new float[]{13.0f,7.9f,0.9f});
mat.put(4,0,new float[]{50.9f,1.2f,1.0f});
Mat mean = new Mat();
Mat eigenvectors = new Mat();
Core.PCACompute(mat, mean, eigenvectors);
Debug.Log("eigenvectors dump = " + eigenvectors.dump ()); // Print []
mat1.Dispose ();
mean.Dispose ();
eigenvectors.Dispose ();
答案 0 :(得分:0)
你真的需要使用3个频道吗?
也许您可以尝试增加列。
Mat mat = new Mat(5, 3, CvType.CV_32FC1);
或者您可以使用
创建一个数组并将其更改为Mat data= np.zeros([[1,2,3] ,[1,2,3]], np.float32)
Mat mat = cv.fromarray(data)