Пытаюсь сгладить неровные контуры, нарисованные методом OpenCV's drawContours()
. Я применяю размытие по Гауссу к контуру, а затем пытаюсь использовать справочную таблицу для сопоставления интенсивности пикселей.
Однако я не знаю, какие значения использовать в моей таблице поиска. Сейчас я просто угадываю произвольные числа. Я собрал небольшой макет: первые два изображения — результаты непосредственно из OpenCV. Последнее изображение достигается с помощью функции уровней Photoshop. Как видите, стало мягче.
Как узнать, какие значения использовать в моей справочной таблице?
std::vector<char> lut(256);
for (int i = 0; i <= 255; ++i) {
if(i >= 75) lut[i] = 255;
else if (i <= 25) lut[i] = 0;
else if (i < 75 && i > 25) lut[i] = i;
}
cv::LUT(contoursOverlay, lut, contoursOverlay);