Перейти к содержимому
Compvision.ru
Alex_grem

Получение значений Hue, Saturation, Value

Recommended Posts

с помощью cvSplit

Пытаюсь получить след. способом значения H,S,V (см. код) для конкретной точки, но в конечном итоге в массиве hsv содержатся значения цветового пространства RGB...может где-то ошибаюсь?

void GetHSV_val(IplImage *frame, int x, int y)
{
IplImage *hue, *sat, *val, *HSV;

uchar *dataHue, *dataSat, *dataVal;

hue = cvCreateImage(cvGetSize(frame), frame->depth, 1); //Hue (тон)
sat = cvCreateImage(cvGetSize(frame), frame->depth, 1); //Saturation (насыщенность)
val = cvCreateImage(cvGetSize(frame), frame->depth, 1); //Value (значение)
HSV = cvCreateImage(cvGetSize(frame), frame->depth, 3);


cvZero(hue); cvZero(sat); cvZero(val); cvZero(HSV);

cvCvtColor( frame, HSV, CV_BGR2HSV);

cvSplit(HSV, hue, sat, val, 0);

dataHue = (uchar *)hue->imageData;
dataSat = (uchar *)sat->imageData;
dataVal = (uchar *)val->imageData;

hsv[0] = dataHue[x*(hue->widthStep)+y];
hsv[1] = dataSat[x*(sat->widthStep)+y];
hsv[2] = dataVal[x*(val->widthStep)+y];

.................................................................
.................................................................

}
[/codebox]

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для того чтобы получить H, S и V при помощи cvSplit, изображение должно быть в пространстве HSV, а у Вас, судя по всему в RGB - вот и получаете R, G и B.

cvSplit не конвертирует изображение, а только разбивает на плоскости, для конвертирования используйте ф-цию:

cvCvtColor( object_color, hsv_obj, CV_BGR2HSV );

дальше можно так:

// Разобьем hsv по компонентам

cvCvtPixToPlane( hsv_obj, h_plane_obj, s_plane_obj, v_plane_obj, 0 );

Вам нужно глянуть тему:

http://www.compvision.ru/forum/index.php?showtopic=18

там все это есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×