Добрый день!OpenCV Recolorization
Я не могу найти правильные условия для того, что я хочу сделать в OpenCV. Вот ситуация:
У меня есть изображение и цвет в градациях серого (BGR).
Я хочу «применить» цвет к полутоновому изображению, но сохраняя яркость и сохраняя его впоследствии.
Мой первоначальный мыслительный процесс был:
- Преобразование BGR цвет Luv
- Заменить L из полутонового изображения
- Преобразование конечного изображения в BGR и сохранить
Это то, что я до сих пор:
cv::Mat pixelColor(1, 1, CV_8UC3, cv::Scalar(0));
pixelColor.at<cv::Vec3b>(1, 1) = cv::Vec3b(128, 255, 0); // currently hard-coded but it actually comes from another source
cv::cvtColor(pixelColor, pixelColor, CV_BGR2Luv);
pixelColor.at<cv::Vec3b>(1, 1)[0] = image.at<unsigned char>(y, x);
cv::cvtColor(pixelColor, pixelColor, CV_Luv2BGR);
Я перебираю все y и x моего изображения в оттенках серого. Фактический цвет приходит в другом месте, но гарантированно BGR.
Мои вопросы: (1) Каков правильный термин для этого процесса? (2) где я иду не так?
Как это работает/не работает? '(2)' спрашивает, где я ошибаюсь ", однако вы не можете указать, какие ошибки вы получаете. –
не ошибки, а не весь цветной спектр правильно размещен. В моем конкретном случае я окрашиваю полутоновое изображение с использованием трех цветов. Критерии раскраски берутся из поля вероятностной меры, которое я уже вычислил. В зависимости от цветового пространства только 2 из 3 цветов правильно размещены, иногда детали теряются. Я не уверен, что –