Найти ограничивающий параллелепипед 3d облака точек с помощью PCA

голоса
0

Я пытаюсь найти ограничительную рамку 3d облака точек с помощью РСА. Я использую JAMA «Java Matrix пакета» для того, чтобы выполнить СВД.

  1. Я выборка 1000 из моего облака точек и выполнения SVD:

    Matrix pointsMatrix = new Matrix(nThPoints);
    SingularValueDecomposition svd = new SingularValueDecomposition(pointsMatrix);
    
  2. Я извлекая 3 PCA векторы из результата и добавление их негативы:

    двойной [] Vector1 = {svd.getU () получит (0, 0), svd.getU () получает (1, 0), svd.getU () получает (2, 0)...}; двойной [] vector1N = Vec.Mult (Vector1, -1); двойной [] Vector2 = {svd.getU () получит (0, 1), svd.getU () получает (1, 1), svd.getU () получает (2, 1)...}; двойной [] vector2N = Vec.Mult (Vector2, -1); двойной [] Vector3 = {svd.getU () получит (0, 2), svd.getU () получает (1, 2), svd.getU () получает (2, 2)...}; двойной [] vector3N = Vec.Mult (Vector3, -1);

  3. Я увеличительный каждый вектор в соответствии с размерами данных (проходящие через каждый из 1000 точек и проверок, что является самым большим выступом):

    Vector1 = Vec.projectData (Vector1, nThPoints);

        vector1N = Vec.projectData(vector1N, nThPoints);
        vector2 = Vec.projectData(vector2, nThPoints);
        vector2N = Vec.projectData(vector2N, nThPoints);
        vector3 = Vec.projectData(vector3, nThPoints);
        vector3N = Vec.projectData(vector3N, nThPoints);
    

Теперь, что у меня есть 6 новых векторов мне нужно как-то вычислить 8 углов (в то время как помня центр образца), и я просто не знаю, как сделать это.

Как я могу это сделать?

Задан 07/06/2013 в 13:02
источник пользователем
На других языках...                            


1 ответов

голоса
0

Вы можете найти подробное описание здесь:

http://hewjunwei.wordpress.com/2013/01/26/obb-generation-via-principal-component-analysis/

Ответил 23/05/2014 в 16:53
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more