Главная страница
    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.48 MB
Время: 0.005 c
2-1257937557
Oleg1963
2009-11-11 14:05
2010.01.03
Компонент в цикле


15-1256477905
Leonid Troyanovsky
2009-10-25 16:38
2010.01.03
На Зинчука кто идет?


3-1232444432
MsGuns
2009-01-20 12:40
2010.01.03
Виртуальные таблицы в TSQL


1-1232224539
Igor2010
2009-01-17 23:35
2010.01.03
CheckListBox цвет строки


15-1257164173
Serge
2009-11-02 15:16
2010.01.03
Нужен софт для написания хелпа к проге





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский