Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.01.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
2-1257917183
Tornado
2009-11-11 08:26
2010.01.03
Как разрешить ввод только заглавных букв?


15-1257013562
POOP
2009-10-31 21:26
2010.01.03
Опять Latex. Texlive


15-1257377007
Германн
2009-11-05 02:23
2010.01.03
.NET class library


15-1256640147
ZeroDivide
2009-10-27 13:42
2010.01.03
IsDelphiDead.com


2-1258126527
zlo
2009-11-13 18:35
2010.01.03
Методы в record





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