Базові Перетворення
OpenCV (Open Source Computer Vision Library) — потужна бібліотека з відкритим кодом, розроблена для задач комп'ютерного зору та обробки зображень у реальному часі. Вона надає інструменти для маніпулювання зображеннями, виявлення об'єктів і навіть роботи з моделями глибокого навчання.
Зчитування та відображення зображення
Перш ніж виконувати трансформації, спочатку завантажимо та відобразимо зображення за допомогою OpenCV. Фото вже імпортовано. Але на вашому локальному комп'ютері для простого зчитування та відображення фото слід використати:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Зміна розміру зображення
Зміна розміру корисна для масштабування зображень вгору або вниз із збереженням співвідношення сторін (fx
та fy
параметри),
де fx
і fy
визначають коефіцієнти масштабування по ширині та висоті.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Ви також можете вказати точні розміри пікселів (параметр dsize
),
де dsize
— це (new_y, new_x)
форма вихідного зображення.
resized = cv2.resize(image, (100, 100))
Обертання зображення
Для обертання зображення на певний кут використовується cv2.getRotationMatrix2D()
та cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
визначає матрицю обертання;cv2.warpAffine(image, matrix, output_size)
застосовує трансформацію.
height, width = image.shape[:2]
centre = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))
Обрізання зображення
Обрізання дозволяє виділити певну область зображення. Це виконується за допомогою зрізів NumPy.
Синтаксис image[start_y:end_y, start_x:end_x]
вибирає область інтересу.
cropped = image[450:500, 250:350]
Swipe to start coding
Вам надано image
:
- Змініть розмір зображення до форми
(100, 100)
та збережіть у зміннійresized
; - Витягніть
height
таwidth
із зображення; - Обчисліть
center
на основіheight
таwidth
; - Створіть матрицю обертання та збережіть її у змінній
rotation_matrix
; - Поверніть зображення на 90 градусів за годинниковою стрілкою та збережіть у змінній
rotated
; - Обріжте область X: 250-600 та Y: 100-450 зображення та збережіть у змінній
cropped
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.45
Базові Перетворення
Свайпніть щоб показати меню
OpenCV (Open Source Computer Vision Library) — потужна бібліотека з відкритим кодом, розроблена для задач комп'ютерного зору та обробки зображень у реальному часі. Вона надає інструменти для маніпулювання зображеннями, виявлення об'єктів і навіть роботи з моделями глибокого навчання.
Зчитування та відображення зображення
Перш ніж виконувати трансформації, спочатку завантажимо та відобразимо зображення за допомогою OpenCV. Фото вже імпортовано. Але на вашому локальному комп'ютері для простого зчитування та відображення фото слід використати:
import cv2
image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)
Зміна розміру зображення
Зміна розміру корисна для масштабування зображень вгору або вниз із збереженням співвідношення сторін (fx
та fy
параметри),
де fx
і fy
визначають коефіцієнти масштабування по ширині та висоті.
resized_image = cv2.resize(image, fx=0.7, fy=0.5)
Ви також можете вказати точні розміри пікселів (параметр dsize
),
де dsize
— це (new_y, new_x)
форма вихідного зображення.
resized = cv2.resize(image, (100, 100))
Обертання зображення
Для обертання зображення на певний кут використовується cv2.getRotationMatrix2D()
та cv2.warpAffine()
.
cv2.getRotationMatrix2D(center, angle, scale)
визначає матрицю обертання;cv2.warpAffine(image, matrix, output_size)
застосовує трансформацію.
height, width = image.shape[:2]
centre = (width // 2, height // 2)
rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))
Обрізання зображення
Обрізання дозволяє виділити певну область зображення. Це виконується за допомогою зрізів NumPy.
Синтаксис image[start_y:end_y, start_x:end_x]
вибирає область інтересу.
cropped = image[450:500, 250:350]
Swipe to start coding
Вам надано image
:
- Змініть розмір зображення до форми
(100, 100)
та збережіть у зміннійresized
; - Витягніть
height
таwidth
із зображення; - Обчисліть
center
на основіheight
таwidth
; - Створіть матрицю обертання та збережіть її у змінній
rotation_matrix
; - Поверніть зображення на 90 градусів за годинниковою стрілкою та збережіть у змінній
rotated
; - Обріжте область X: 250-600 та Y: 100-450 зображення та збережіть у змінній
cropped
.
Рішення
Дякуємо за ваш відгук!
single