2015-04-11 2 views
0

Я пытаюсь сгладить некоторые контурные края, чтобы они не были зубчатыми. До сих пор я применил cv::GuassianBlur() к моим контурам. Я нашел интересный stackoverflow answer, который может помочь с помощью таблицы поиска с LUT, чтобы отсортировать «порог» моих размытых контуров.Как написать таблицу поиска для сопоставления интенсивности пикселей (OpenCV)

Однако я не уверен, как правильно писать таблицу поиска. Я не мог найти никаких ясных примеров. Любая помощь оценивается. Спасибо

ответ

2

Вы должны просто передать std::vector<char> с 256 элементами в качестве параметра lut. Элемент с индексом i в этом векторе укажет выходное значение для всех пикселей со значением i.

Например, если вы хотите, чтобы порог изображения на 80 (все выше или равна 80 становится полностью белым, а все остальное становится полностью черным), вы могли бы написать что-то вроде этого:

std::vector<char> lut(256); 
for (int i = 0; i < 256; ++i) { 
    lut[i] = i >= 80 ? 255 : 0; 
} 

cv::LUT(src, lut, dst); 
Смежные вопросы