Работа с пикселями изображения - PullRequest
0 голосов
/ 12 января 2011

Я пытаюсь сделать проект здесь, который я хочу реализовать следующим образом:

У меня есть матрица вращения и матрица перевода оценены, теперь у меня есть изображение в определенном месте, и я хочуумножить все пиксели изображения на матрицу вращения и добавить результаты в матрицу перевода .....

Моя проблема в том, как работать с пикселями?Я имею в виду, как извлечь пиксель из изображения, чтобы выполнить операцию, о которой я упоминал выше?

Можно дать мне совет в opencv или c ++

* Iнужно знать, как сделать эту операцию new_p (x, y) = old_p (x, y) * вращение_matrix + translation_matrix.Я определяю изображение таким образом, IplImage (), 3-канальное изображение.Сейчас мне нужно сделать геометрическое преобразование, но я не знаю, как использовать old_p (x, y), что означает старые пиксели *

Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 января 2011

В Opencv необходимые вам функции находятся в разделе «Преобразования геометрического изображения» в руководстве. В вашем случае, поскольку у вас уже есть матрица вращения и перевод, warpAffine является функцией выбора ( ссылка на документацию по функциям ). Первые два столбца матрицы преобразования, которые вы передаете, - это матрица вращения, третий - вектор переноса (если вы не знакомы с однородными координатами).

0 голосов
/ 12 января 2011

Основная идея будет состоять в том, что вам нужно значение цвета для каждого пикселя в конечном конечном изображении. Таким образом, вам нужно найти функцию, которая отображает (повернутый и переведенный) пиксель на каждую (x,y) позицию изображения конечного результата.

Учитывая матрицу, преобразующую исходные координаты изображения в координаты целевого изображения, вы, вероятно, в конечном итоге инвертируете это преобразование и применяете его для каждого пикселя целевого изображения, плюс или минус несколько оптимизаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...