Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базові Трансформації | Розділ
Прикладний комп'ютерний зір
Секція 1. Розділ 4
single

single

bookБазові Трансформації

Свайпніть щоб показати меню

Note
Визначення

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.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 4
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt