x, y, z к смещению вектора - PullRequest
2 голосов
/ 12 марта 2011

я знаю, это может звучать глупо, но я схожу с ума от этого XD

Я загружаю рекламное изображение (с ImageMagick) в одномерный вектор, так что у меня есть что-то вроде:

012345678...
RGBRGBRGB...

Где 0- .., очевидно, являются индексами вектора, а R, G и B - соответственно красный байт, зеленый байт и синий байт. Итак, у меня есть вектор WIDTHxHEIGHTx3 байтов.

Теперь, скажем, я хочу получить доступ к байту x, y, z, где z - это индекс цвета, который является формулой преобразования для линейного смещения в векторе?

Спасибо:)

Ответы [ 2 ]

5 голосов
/ 12 марта 2011

Это выражение создает индекс для компонента цвета z в пикселях (x, y) :

((y * WIDTH) + x) * 3 + z

Допущения:

  • Данные помещаются в порядок старших строк .
  • Между строками не используются байты заполнения / выравнивания.
0 голосов
/ 12 марта 2011

Предполагая, что ваши данные хранятся в виде ряда строк (не безумное предположение), вы можете найти байт x, y, z в y*WIDTH*3 + 3*x + z

...