Доступ к 3-значным значениям char *

Я имею то, что следует:

char* imgData;
Scalar scal = cvGet2D(imgData, x, y);

Где скаляр определяется следующим образом:

typedef struct Scalar
{
double val[3];
}
Scalar;

Что я хочу иметь скаляр в результате, но без использования cvGet2D.

Как я могу это реализовать?

0

Решение

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

0

Другие решения

Может быть, этот пост поможет в дальнейшем:

Как мне получить доступ к пикселю в OpenCV?

В вашем случае это img-> imageData просто imgData. Чтобы получить доступ ко всем вашим пикселям в x и y, вам все равно нужно знать ширину шага (шаг строки) вашего изображения.
Я бы сказал, что у вас есть что-то вроде:

int x=44;
int y=21;
int widthstep=480;
Scalar pixel = ((Scalar*)imgData)[y*widthstep+x];
0

По вопросам рекламы [email protected]