Статья Автор: Деникина Наталья Владимировна

Введение в OpenCV. Чтение изображений

Что такое OpenCV?


OpenCV (Open Source Computer Vision Library) — это библиотека для компьютерного зрения и обработки изображений, которая была разработана компанией Intel и затем выпущена в открытый доступ. OpenCV предоставляет мощные инструменты для работы с изображениями и видео, такие как детектирование объектов, распознавание лиц, анализ движения и многое другое. Библиотека широко используется в научных исследованиях, разработке приложений и в области машинного обучения.
 

Установка OpenCV

Чтобы установить локально OpenCV, выполните в терминале следующую команду :

pip install opencv-contrib-python
Благодаря дополнительным модулям, opencv-contrib-python предоставляет более широкий набор инструментов для решения задач компьютерного зрения, таких как распознавание объектов, обработка видео, анализ изображений и многое другое.
 

Возможности OpenCV

  • Загрузка и сохранение изображений
  • Преобразование цветовых пространств
  • Обработка изображений (фильтрация, размытие, сглаживание)
  • Геометрические преобразования (поворот, масштабирование, трансформация)
  • Обнаружение и распознавание объектов
  • Работа с видео (захват, воспроизведение, обработка)


Чтение изображения

Возьмем файл размера 3х3 пикселя и попробуем его прочитать и вывести на экран (в увеличенном формате изображение выглядит так). Изображение содержит основные цвета.
Ниже будут даны примеры разных способов, как это можно сделать.

 

1. Локально на компьютере

Важно! Для правильной работы ваших программ на начальном этапе следует размещать скрипт и файлы изображений в одной папке, чтобы избегать проблем с чтением путей!
Примечание! В некоторых редакторах (VSCode, например) по умолчанию скрипт запускается не в той рабочей области, где находится. Проверьте настройки, если изображение прочитать не удалось!

  1. Скачайте файл (для скачивания правой кнопкой кликните на ссылку → "Сохранить ссылку как")
  2. Для чтения изображения необходимо импортировать библиотеки и прочитать файл в переменную.


Для того, чтобы увидеть изображение, используйте команду: cv2.imshow('RGB-image', img)
В некоторых редакторах такой код откроет и тут же закроет окно с изображением. Для того, чтобы продолжать показывать окно, до тех пор, пока не будет нажата любая кнопка, добавьте в код следующие строки:
import cv2
import numpy as np

img = cv2.imread('RGB-image.png')
cv2.imshow('Image',img) #'Image' - заголовок окна, img - переменная, содержащая изображение

cv2.waitKey(0) #ожидает нажатия любой клавиши
cv2.destroyAllWindows() #закроет окно перед завершением скрипта


2. Работа с избражениями в тестирующей системе на сайте silvertests.ru

В задачах на обработку изображений вам будет предоставлн шаблон кода. В поле входные данные скопируйте следующую строку:
iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAiSURBVBhXFcYBDgAgDMLAmx+fP0dMW4KoH8lp9i7G9KdbeTVRDninnFWwAAAAAElFTkSuQmCC


Строка выше (во входных данных) представлет собой строку в формате base64  — это способ кодирования данных, который позволяет представлять бинарные данные в текстовом формате. Этот метод часто используется для передачи данных через текстовые протоколы, такие как HTTP, или для хранения данных в текстовых файлах.

После выполнения кода выше в переменной image будет изображение, с которым вам необходимо выполнить операции и вывести ответ.

Для проверки решений вам нужно будет вывести результат в текстовом виде!

Другой способ вывода изображений - это использование библиотеки Matplotlib. Такой же способ можно использовать в нашем онлайн-компиляторе.


В онлайн-компиляторе и на страницах с теорией (у нас они называются тетради и вы можете создавать собственные тетради) также можно вывести изображение с помощью метода cv2.imshow(image). В отличии от локального выполнения данного метода, здесь первый параметр, отвечающий за название окна опущен. 


Изображение, которое мы пытаемся вывести достаточно маленькое 3х3 пикселя, поэтому используя для вывода метод cv2.imshow() оно сохраняет свой размер, в отличии от вывода в окно Matplotlib.
Прикрепленные файлы
pixel3x3.png
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать