OSDN Git Service

[backup]NyARToolkit for Java
[nyartoolkit-and/nyartoolkit-and.git] / src / jp / nyatla / nyartoolkit / core / pca2d / NyARPca2d_MatrixPCA_O2.java
index db358bd..0ca9dd2 100644 (file)
@@ -53,7 +53,7 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
         * @param dv\r
         * @throws NyARException\r
         */\r
-       private static void PCA_QRM(NyARDoubleMatrix22 o_matrix, NyARDoublePoint2d dv) throws NyARException\r
+       private static void PCA_QRM(NyARDoubleMatrix22 o_matrix, double[] dv) throws NyARException\r
        {\r
                double w, t, s, x, y, c;\r
                double ev1;\r
@@ -139,8 +139,8 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
                        o_matrix.m10 = mat10;           \r
                        o_matrix.m11 = mat11;\r
                }\r
-               dv.x=dv_x;\r
-               dv.y=dv_y;\r
+               dv[0]=dv_x;\r
+               dv[1]=dv_y;\r
                return;\r
        }\r
 \r
@@ -151,7 +151,7 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
         * @param o_ev\r
         * @throws NyARException\r
         */\r
-       private void PCA_PCA(double[] i_x,double[] i_y,int i_number_of_data,NyARDoubleMatrix22 o_matrix, NyARDoublePoint2d o_ev,NyARDoublePoint2d o_mean) throws NyARException\r
+       private void PCA_PCA(double[] i_v1,double[] i_v2,int i_number_of_data,NyARDoubleMatrix22 o_matrix, double[] o_ev,double[] o_mean) throws NyARException\r
        {\r
                // double[] mean_array=mean.getArray();\r
                // mean.zeroClear();\r
@@ -160,8 +160,8 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
                double sx = 0;\r
                double sy = 0;\r
                for (int i = 0; i < i_number_of_data; i++) {\r
-                       sx += i_x[i];\r
-                       sy += i_y[i];\r
+                       sx += i_v1[i];\r
+                       sy += i_v2[i];\r
                }\r
                sx = sx / i_number_of_data;\r
                sy = sy / i_number_of_data;\r
@@ -171,8 +171,8 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
                double w00, w11, w10;\r
                w00 = w11 = w10 = 0.0;// *out = 0.0;\r
                for (int i = 0; i < i_number_of_data; i++) {\r
-                       final double x = (i_x[i] - sx) / srow;\r
-                       final double y = (i_y[i] - sy) / srow;\r
+                       final double x = (i_v1[i] - sx) / srow;\r
+                       final double y = (i_v2[i] - sy) / srow;\r
                        w00 += (x * x);// *out += *in1 * *in2;\r
                        w10 += (x * y);// *out += *in1 * *in2;\r
                        w11 += (y * y);// *out += *in1 * *in2;\r
@@ -184,30 +184,30 @@ public class NyARPca2d_MatrixPCA_O2 implements INyARPca2d
                //PCA_PCAの処理\r
                PCA_QRM(o_matrix, o_ev);\r
                // m2 = o_output.m;// m2 = output->m;\r
-               if (o_ev.x < PCA_VZERO) {// if( ev->v[i] < VZERO ){\r
-                       o_ev.x = 0.0;// ev->v[i] = 0.0;\r
+               if (o_ev[0] < PCA_VZERO) {// if( ev->v[i] < VZERO ){\r
+                       o_ev[0] = 0.0;// ev->v[i] = 0.0;\r
                        o_matrix.m00 = 0.0;// *(m2++) = 0.0;\r
                        o_matrix.m01 = 0.0;// *(m2++) = 0.0;\r
                }\r
 \r
-               if (o_ev.y < PCA_VZERO) {// if( ev->v[i] < VZERO ){\r
-                       o_ev.y = 0.0;// ev->v[i] = 0.0;\r
+               if (o_ev[1] < PCA_VZERO) {// if( ev->v[i] < VZERO ){\r
+                       o_ev[1] = 0.0;// ev->v[i] = 0.0;\r
                        o_matrix.m10 = 0.0;// *(m2++) = 0.0;\r
                        o_matrix.m11 = 0.0;// *(m2++) = 0.0;\r
                }\r
-               o_mean.x=sx;\r
-               o_mean.y=sy;\r
+               o_mean[0]=sx;\r
+               o_mean[1]=sy;\r
                // }\r
                return;\r
        }\r
-       public void pca(double[] i_x,double[] i_y,int i_number_of_point,NyARDoubleMatrix22 o_evec, NyARDoublePoint2d o_ev,NyARDoublePoint2d o_mean) throws NyARException\r
+       public void pca(double[] i_v1,double[] i_v2,int i_number_of_point,NyARDoubleMatrix22 o_evec, double[] o_ev,double[] o_mean) throws NyARException\r
        {\r
-               PCA_PCA(i_x,i_y,i_number_of_point,o_evec, o_ev,o_mean);\r
+               PCA_PCA(i_v1,i_v2,i_number_of_point,o_evec, o_ev,o_mean);\r
 \r
-               final double sum = o_ev.x + o_ev.y;\r
+               final double sum = o_ev[0] + o_ev[1];\r
                // For順変更禁止\r
-               o_ev.x /= sum;// ev->v[i] /= sum;\r
-               o_ev.y /= sum;// ev->v[i] /= sum;\r
+               o_ev[0] /= sum;// ev->v[i] /= sum;\r
+               o_ev[1] /= sum;// ev->v[i] /= sum;\r
                return; \r
        }\r
 \r