PCACompute を呼び出すと固有ベクトルがすべて 0 になるため、Android Opencv2.3.1 の PCACompute にこの問題があります。その後、次のコードを使用して、100X100 マットを 1 つのマット 1X10000 に変換します。
double [] elem = null;
for(int riga=0;riga<m.rows();riga++)
{
for(int colonna=0;colonna<m.cols();colonna++)
{
elem = m.get(riga, colonna);
mrow.put(0,((riga*100)+colonna), elem[0]);
}//for colonna
}//for riga
その後、10枚の写真を撮ると、次のコードを使用して写真のすべてのマットを1つのマットに挿入します:
double b[] = null;
for (int i = 0; i< listafoto.size(); i++)
{
Mat t = listafoto.get(i);
for(int riga = 0;riga<t.rows();riga++)
{
for(int colonna =0;colonna<t.cols();colonna++)
{
b = t.get(riga, colonna);
datiOriginali.put(i, colonna, b[0]);
}//for colonna
}//for riga
}//for lista e contemporaneamente riga datiOriginali
その後、次のコードで PCACompute を呼び出します。
org.opencv.core.Core.PCACompute(datiOriginali,mean, eigenvectors, 10);`
したがって、datiOriginali は 10 行と 10000 列の入力 Mat であり、平均と固有ベクトルは出力行列です。平均行列では結果が得られますが、固有ベクトルではすべて 0 になります。この問題の解決を手伝ってもらえますか? よろしくお願いします。