Главная страница
    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.004 c
2-1257950877
Alexey
2009-11-11 17:47
2010.01.03
Поток, передача параметра в onTerminated


1-1232695597
yurik85
2009-01-23 10:26
2010.01.03
Изменение данных в текстовом файле


15-1257334588
XXL
2009-11-04 14:36
2010.01.03
Сантехники от программирования - нужны ли они ?


2-1257937557
Oleg1963
2009-11-11 14:05
2010.01.03
Компонент в цикле


15-1257084331
SergP
2009-11-01 17:05
2010.01.03
Интерестные задачки из IQ-теста





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский