Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.03;
Скачать: CL | DM;

Вниз

Формирование анаглифного изображения   Найти похожие ветки 

 
brother ©   (2009-11-04 12:09) [0]

Решил написать преобразователь в анаглифное изображение
алгоритм: http://research.csc.ncsu.edu/stereographics/LS.pdf
с матрицами у меня не оч, но все же...
не понимаю, как они после вычисления P1CL + P2CR получают RGB? Ведь вычисления в матрице остались?


 
brother ©   (2009-11-04 12:12) [1]

или я совсем уже к вечеру туплю? можно ткнуть кодом)


 
Romkin ©   (2009-11-04 12:36) [2]

Перемножаешь матрицы - получаешь матрицу. Что непонятно? С - это столбцы RGB.


 
brother ©   (2009-11-04 12:43) [3]

я так понимаю:
перемножаем матрицу L на число получаем матрицу,
перемножаем матрицу R на число получаем матрицу,
слаживаем обе матрицы, получаем результирующую матрицу. как эти 9 значений приводятся к 3м?(


 
brother ©   (2009-11-04 12:48) [4]

если уж наглядно:
содержимое результирующей матрицы:
ххх ххх ххх
ххх ххх ххх
ххх ххх ххх
привести к:
ХХХ (- R)
ХХХ (- G)
ХХХ (- B)


 
Romkin ©   (2009-11-04 12:56) [5]

Я же говорю, С и P - матрицs, C - вектор-столбец. Посмотри, как матрицы перемножают


 
brother ©   (2009-11-04 13:51) [6]

блин, подробнее... после перемножения матриц на число получают матрицу...


 
SergP ©   (2009-11-04 14:05) [7]


> блин, подробнее... после перемножения матриц на число получают
> матрицу...


Вот тут написано как умножаются матрицы
http://www.pm298.ru/matr3.php


 
brother ©   (2009-11-04 14:14) [8]

делаю так:
умножаю матрицы на число:
     fMatrixLeft[0,0]:= fMatrixLeft[0,0] *r;
     fMatrixLeft[0,1]:= fMatrixLeft[0,1] *r;
     fMatrixLeft[0,2]:= fMatrixLeft[0,2] *r;
     fMatrixLeft[1,0]:= fMatrixLeft[1,0] *g;
     fMatrixLeft[1,1]:= fMatrixLeft[1,1] *g;
     fMatrixLeft[1,2]:= fMatrixLeft[1,2] *g;
     fMatrixLeft[2,0]:= fMatrixLeft[2,0] *b;
     fMatrixLeft[2,1]:= fMatrixLeft[2,1] *b;
     fMatrixLeft[2,2]:= fMatrixLeft[2,2] *b;

     fMatrixRight[0,0]:= fMatrixRight[0,0] *r;
     fMatrixRight[0,1]:= fMatrixRight[0,1] *r;
     fMatrixRight[0,2]:= fMatrixRight[0,2] *r;
     fMatrixRight[1,0]:= fMatrixRight[1,0] *g;
     fMatrixRight[1,1]:= fMatrixRight[1,1] *g;
     fMatrixRight[1,2]:= fMatrixRight[1,2] *g;
     fMatrixRight[2,0]:= fMatrixRight[2,0] *b;
     fMatrixRight[2,1]:= fMatrixRight[2,1] *b;
     fMatrixRight[2,2]:= fMatrixRight[2,2] *b;
слаживаю матрицы
     rMatrix[0,0]:= fMatrixLeft[0,0] + fMatrixRight[0,0];
     rMatrix[0,1]:= fMatrixLeft[0,1] + fMatrixRight[0,1];
     rMatrix[0,2]:= fMatrixLeft[0,2] + fMatrixRight[0,2];
     rMatrix[1,0]:= fMatrixLeft[1,0] + fMatrixRight[1,0];
     rMatrix[1,1]:= fMatrixLeft[1,1] + fMatrixRight[1,1];
     rMatrix[1,2]:= fMatrixLeft[1,2] + fMatrixRight[1,2];
     rMatrix[2,0]:= fMatrixLeft[2,0] + fMatrixRight[2,0];
     rMatrix[2,1]:= fMatrixLeft[2,1] + fMatrixRight[2,1];
     rMatrix[2,2]:= fMatrixLeft[2,2] + fMatrixRight[2,2];
получаю результирующую матрицу 3х3!
теперь ступор... в матрице 9 элементов, где тут RGB (3 элемента)?
чего я не доделываю по 1ой формуле из [0]?
8(


 
Romkin ©   (2009-11-04 14:31) [9]

Где ты нашел число? Еще раз: умножение матриц.


 
SergP ©   (2009-11-04 14:43) [10]


> brother ©   (04.11.09 14:14) [8]
>      fMatrixLeft[0,0]:= fMatrixLeft[0,0] *r;
>      fMatrixLeft[0,1]:= fMatrixLeft[0,1] *r;
>      fMatrixLeft[0,2]:= fMatrixLeft[0,2] *r;
>      fMatrixLeft[1,0]:= fMatrixLeft[1,0] *g;
>      fMatrixLeft[1,1]:= fMatrixLeft[1,1] *g;
>      fMatrixLeft[1,2]:= fMatrixLeft[1,2] *g;
>      fMatrixLeft[2,0]:= fMatrixLeft[2,0] *b;
>      fMatrixLeft[2,1]:= fMatrixLeft[2,1] *b;
>      fMatrixLeft[2,2]:= fMatrixLeft[2,2] *b;


Это не умножение матрицы на число, и не умножение матрицы на матрицу, а хз что...
судя по всему тебе все-таки нужно умножить матрицу 3*3 на матрицу 1*3
В результате такого умножения должна получиться матрица 1*3


 
SergP ©   (2009-11-04 14:49) [11]

Если А*B = C и A(3*3), B(1*3) то получим С(1*3)

С[1,1]:=A[1,1]*B[1,1] + A[2,1]*B[1,2]+ A[3,1]*B[1,3];
С[1,2]:=A[1,2]*B[1,1] + A[2,2]*B[1,2]+ A[3,2]*B[1,3];
С[1,3]:=A[1,3]*B[1,1] + A[2,3]*B[1,2]+ A[3,3]*B[1,3];


 
SergP ©   (2009-11-04 16:40) [12]

http://www.3dnews.ru/documents/2812/image-023.gif


 
brother ©   (2009-11-05 04:16) [13]

спасибо за разъяснения, но в итоге - не работает (получается таже картинка, что и перед преобразованиями)... бум разбираться


 
brother ©   (2009-11-05 06:49) [14]

разобрался - заработало...!!!! Серг - спасибо!



Страницы: 1 вся ветка

Текущий архив: 2010.01.03;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
2-1258026892
Сергей
2009-11-12 14:54
2010.01.03
Как как првильно закрыть форму?


2-1258113824
Acrisim
2009-11-13 15:03
2010.01.03
Многострочный едит


15-1257059938
И Павел
2009-11-01 10:18
2010.01.03
Кому выпадало такое же счастье?


2-1258013944
Scot Storch
2009-11-12 11:19
2010.01.03
record c case


15-1257122587
Eraser
2009-11-02 03:43
2010.01.03
Протокол и GNU