Гистограмма, Фильтр, OpenCV, Python

Используя OpenCV в Python, я получил гистограмму одного канала в изображении. Могу ли я преобразовать ее в кривую, чтобы умножить эту новую кривую на другую кривую, полученную с помощью интерполяции, что я не знаю ее функции, а затем вернуть Выходная кривая на гистограмму, чтобы действовать в качестве фильтра на моем изображении?

1 ответ

Сначала вы должны извлечь гистограмму как функцию диапазона [0, 255] в виде массива. Затем, используя библиотеку scipy или библиотеку lmfit ( https://lmfit.github.io/lmfit-py/model.html), вы можете подогнать кривую и извлечь функцию.

Функция была бы в форме

y = f(x)

где x это диапазон [0,255].

Далее вам нужно будет преобразовать другую функцию в аналогичную функцию

z = g(x)

используя учебник выше.

Важно помнить, что вы не должны слепо подбирать случайную функцию к данным. Вы должны знать общую природу данных и f(x) или же g(x) это относительно хорошая посадка или нет. Возможно, вам придется сделать несколько проб и ошибок здесь.

Как только вы получили оба f(x) а также g(x) Затем вы можете создать третий вектор m с любым диапазоном вы имеете в виду и использовать f(m)*g(m) чтобы умножить.

Другие вопросы по тегам