проецирование света и теней на поверхность

Привет, я пытаюсь извлечь освещение и тень из одной поверхности и применить ее к другому типу поверхности. Я преобразовываю изображение в HSV, извлекаю компонент Hue и строю его, что, кажется, дает мне хорошее представление о том, где находятся освещение и тени. Однако, когда я заменяю компонент оттенка исходного изображения своим окончательным изображением, я получаю всевозможные оттенки зеленого и синего, которые не нужны. Есть ли другие методы, которые можно использовать для проецирования тени и освещения?

cvtColor( img0, hsv, CV_BGR2HSV  );

components[0].create( hsv.size(), 1);
components[1].create( hsv.size(), 1);
components[2].create( hsv.size(), 1);

split(hsv, components);

cvtColor( drawing, hsv_output, CV_BGR2HSV  );

components_output[0].create( hsv.size(), 1);
components_output[1].create( hsv.size(), 1);
components_output[2].create( hsv.size(), 1);

split(hsv_output, components_output);

components_output[0] = 0.5 * components_output[0] + 0.5 * components[0];

int ch[] = {0 , 0};
mixChannels(&components_output[0], 1, &hsv_output, 1, ch, 1);

cvtColor( hsv_output, drawing, CV_HSV2BGR  );

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

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