Неделя 1 - Введение в OpenCV и базовые операции
1. Введение в OpenCV
OpenCV (Open Source Computer Vision Library) – это библиотека компьютерного зрения с открытым исходным кодом, разработанная для обработки изображений и видео. Она поддерживает Python, C++, Java и другие языки.
Основные возможности OpenCV:
Загрузка, сохранение и отображение изображений
Обработка и фильтрация изображений
Детекция объектов (лица, глаза, машины и др.)
Работа с видео (чтение, запись, трекинг)
Машинное обучение в CV (SVM, нейросети)
2. Установка OpenCV
Перед началом работы необходимо установить библиотеку:
Способ 1: Установка через pip
bash
Copy
pip install opencv-python # Базовая версия (достаточно для большинства задач)
pip install opencv-contrib-python # Полная версия (дополнительные модули, например, SIFT)
Способ 2: Установка в Anaconda
bash
Copy
conda install -c conda-forge opencv
Проверка установки
python
Copy
import cv2
print(cv2.__version__) # Должно вывести версию OpenCV (например, 4.9.0)
3. Первая программа: загрузка и отображение изображения
(1) Загрузка изображения
Функция cv2.imread() загружает изображение в формате BGR (не RGB!).
python
Copy
import cv2
# Загрузка изображения (флаги: cv2.IMREAD_COLOR, cv2.IMREAD_GRAYSCALE, cv2.IMREAD_UNCHANGED)
image = cv2.imread("image.jpg", cv2.IMREAD_COLOR)
if image is None:
print("Ошибка загрузки изображения!")
else:
print("Изображение успешно загружено!")
(2) Отображение изображения
Функция cv2.imshow() отображает окно с изображением.
python
Copy
cv2.imshow("Example Image", image)
cv2.waitKey(0) # Ожидание нажатия любой клавиши (0 – бесконечное ожидание)
cv2.destroyAllWindows() # Закрытие всех окон
(3) Сохранение изображения
python
Copy
cv2.imwrite("output.jpg", image) # Сохраняет изображение в файл
4. Основные свойства изображения
Изображение в OpenCV – это NumPy-массив (матрица).
python
Copy
print("Размер изображения:", image.shape) # (высота, ширина, каналы)
print("Тип данных:", image.dtype) # uint8 (0-255)
print("Общее количество пикселей:", image.size)
Пример вывода:
Copy
Размер изображения: (480, 640, 3) # 480px высота, 640px ширина, 3 канала (BGR)
Тип данных: uint8
Общее количество пикселей: 921600
5. Конвертация цветовых пространств
OpenCV по умолчанию использует BGR, но часто требуется RGB или Grayscale.
(1) BGR → RGB
python
Copy
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
(2) BGR → Grayscale (черно-белое)
python
Copy
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("Grayscale Image", gray_image)
cv2.waitKey(0)
(3) BGR → HSV (Hue, Saturation, Value)
python
Copy
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
6. Рисование на изображении
OpenCV позволяет рисовать геометрические фигуры и текст.
(1) Рисование линии
python
Copy
cv2.line(image, (0, 0), (300, 300), (0, 255, 0), 5) # (изобр, точка1, точка2, цвет(BGR), толщина)
(2) Рисование прямоугольника
(3) Рисование круга
python
Copy
cv2.circle(image, (300, 300), 50, (0, 0, 255), -1) # (изобр, центр, радиус, цвет, -1 = заливка)
(4) Добавление текста
python
Copy
cv2.putText(image, "Hello OpenCV!", (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
# (изобр, текст, позиция, шрифт, масштаб, цвет, толщина)
7. Практическое задание
1. Загрузите любое изображение и выведите его свойства (размер, тип данных).
2. Преобразуйте его в Grayscale и сохраните.
3. Нарисуйте на изображении:
o Линию от (0,0) до (width, height)
o Прямоугольник в центре
o Текст "OpenCV" в левом верхнем углу
8. Итоги
OpenCV – мощная библиотека для обработки изображений.
Изображения загружаются в формате BGR, а не RGB.
Основные операции: загрузка, отображение, сохранение, конвертация цветов.
Рисование фигур и текста помогает визуализировать данные.
Следующая тема: Базовые операции с изображениями (обрезание, изменение размера, поворот)