Название | Компьютерное зрение с OpenCV и Python: практическое руководство |
---|---|
Автор произведения | Инженер |
Жанр | |
Серия | |
Издательство | |
Год выпуска | 2025 |
isbn |
import numpy as np
# Загрузка изображения
img = cv2.imread('image.jpg')
# Создание матрицы поворота
(h, w) = img.shape[:2]
(cX, cY) = (w // 2, h // 2)
M = cv2.getRotationMatrix2D((cX, cY), 45, 1.0)
# Поворот изображения
rotated_img = cv2.warpAffine(img, M, (w, h))
# Вывод повернутого изображения
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
В этом примере мы повернули изображение на 45 градусов и сохранили его в переменной `rotated_img`.
В этой главе мы рассмотрели три фундаментальные операции с изображениями: резку, масштабирование и поворот. Эти операции часто используются при обработке изображений и являются основой для более сложных операций. В следующей главе мы рассмотрим более сложные операции с изображениями, такие как фильтрация и преобразование изображений.
2.3. Работа с цветовыми пространствами
В предыдущих главах мы уже познакомились с основными понятиями компьютерного зрения и научились работать с изображениями в OpenCV. Теперь давайте поговорим о цветовых пространствах, которые играют важную роль в обработке и анализе изображений.
**Что такое цветовое пространство?**
Цветовое пространство – это математическая модель, которая описывает способ представления цвета в цифровых изображениях. Цветовое пространство определяет, как цвета будут представлены в виде числовых значений, и как эти значения будут интерпретироваться компьютером.
**Основные цветовые пространства**
Существует несколько основных цветовых пространств, которые используются в компьютерном зрении:
* **RGB (Red, Green, Blue)**: Это наиболее распространенное цветовое пространство, в котором каждый пиксель изображения представлен тремя значениями: красным, зеленым и синим. Эти значения обычно представлены в виде 8-битных целых чисел, что позволяет представить 256 различных оттенков каждого цвета.
* **BGR (Blue, Green, Red)**: Это цветовое пространство аналогично RGB, но порядок цветов обратный. OpenCV по умолчанию использует цветовое пространство BGR.
* **HSV (Hue, Saturation, Value)**: Это цветовое пространство представляет цвета в виде трёх компонентов: оттенка (hue), насыщенности (saturation) и яркости (value). Это цветовое пространство часто используется для разделения объектов на изображении по цвету.
* **YCrCb (Luminance, Chrominance)**: Это цветовое пространство представляет цвета в виде яркости (luminance) и двух компонентов хроминанса (chrominance). Это цветовое пространство часто используется в видеокодировании.
**Преобразование между цветовыми пространствами**
OpenCV предоставляет функции для преобразования между различными цветовыми пространствами. Например, функция `cv2.cvtColor()` позволяет преобразовать изображение из одного цветового пространства в другое.
```python
import cv2
# Загрузка изображения
img = cv2.imread('image.jpg')
# Преобразование изображения в цветовое пространство HSV
hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# Преобразование изображения в цветовое пространство YCrCb
ycrcb_img = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
```
**Практические