Гистограмма, Фильтр, 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)
чтобы умножить.