Я рекомендую вам ознакомиться с основами обработки изображений перед погружением в OpenCV. Имея твердое представление об основных понятиях, таких как , контраст, бинаризация, обрезка, порог, срез, гистограмма и т. Д. (только для некоторых) упростит ваше путешествие через OpenCV.
Таким образом, Википедия определяет это следующим образом: «Нормализация - это процесс, который изменяет диапазон значений интенсивности пикселей ... Нормализация иногда называется растяжением растяжения или растяжением гистограммы».
Чтобы проиллюстрировать это определение я попытаюсь дать вам простой пример:
Imagine у вас есть 8 битное серая шкала изображения, возможные значения интенсивности пикселей перейти от 0 до 255. Если изображение имеет «низкий контраст» , ее гистограмма покажет концентрацию пикселей вокруг определенного значения, как вы можете видеть на следующей картинке:
Теперь, что нормализация делает «взять» эту гистограмму и растяжку его. Он применяет карту преобразования интенсивности, которая коррелирует исходные минимальные и максимальные значения интенсивности с новой парой минимальных и максимальных значений в пределах полного диапазона интенсивностей (от 0 до 255).
Что касается convertScaleAbs()
, то в документации указано, что это scales, calculates absolute values, and converts the result to 8-bit. Не о чем больше говорить.
Полный прототип void convertScaleAbs(InputArray src, OutputArray dst, double alpha=1, double beta=0)
, так что он просто вычисляет абсолютное значение каждого элемента в матрице и преобразует его в действительное 8-разрядное значение без знака.
Wow waqas keep it uo –