Мы все возились с изображениями, обрезали, добавляли фильтры, удаляли шум…. Но задумывались ли вы когда-нибудь о том, что происходит за кулисами, как на самом деле компьютеры видят изображение. Не волнуйтесь, если вы не знаете, я вас прикрою, продолжайте до конца ..

Мы будем использовать python и библиотеку openCV.

img = cv2.imread («мстители.jpg»)

Используйте эту функцию для загрузки изображения.

cv2.imshow("имя окна", ‹отображаемое изображение›)

Используйте это для отображения изображения.

Теперь, если мы напечатаем это изображение, вы получите следующий вывод.

Будет 168 строк, 299 столбцов и 3 канала. Вы можете убедиться в этом, проверив его форму. Каждый список, например [88 99 127], представляет собой значение пикселя (BGR).

img.shape

Три канала представляют (RGB) красный, зеленый и синий.

Теперь давайте превратим цветное изображение в черно-белое.

img = cv2.cvtColor (img, cv2.COLOR_BGR2GRAY)

Вы также можете легко изменить размер изображения с помощью cv2.resize(img,(width, height),interpolation).

Интерполяция необязательна, но должна быть предусмотрена. Когда вы масштабируете изображение, изменяется ли (увеличивается или уменьшается) количество пикселей, поэтому для определения их значений используется интерполяция, существует множество cv2.INTER_AREA , INTER_CUBIC, INTER_LINEAR, каждый из которых имеет отдельный вариант использования. Если вы хотите узнать больше, вы можете сослаться на это.

Еще одно важное понятие — пороговое значение. Метод обработки изображения, который создает двухтональное (также известное как бинарное) изображение на основе установки порогового значения интенсивности пикселей исходного изображения.

По сути, это означает преобразование всех значений пикселей в соответствии с пороговым значением, например: если пороговое значение равно 20, все пиксели со значением меньше 20 будут преобразованы в минимальное значение, а пиксели со значением выше 20 будут преобразованы в максимальное значение.

Вы все знакомы с побитовыми операциями в языке программирования (или нет). Вы также можете выполнять эти операции с изображениями, они будут применяться к каждому элементу значения. bitwise_and, bitwise_or, требует 3 аргумента src1, src2 и маску. Что происходит, побитовая операция будет истинной, только если значения пикселей входных изображений истинны, а значение маски в этом пикселе не равно нулю. Следующий пример кода наглядно показывает работу побитовых функций.

Мы добавляем изображение поверх другого изображения в верхнем левом углу.

Поздравляем🙌, у нас есть довольно хорошее представление об opencv и манипулировании изображениями. В следующей главе мы попытаемся реализовать эти концепции в проекте….