Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базові Перетворення | Обробка Зображень з OpenCV
Основи комп'ютерного зору

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.

Рішення

Все було зрозуміло?

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

Awesome!

Completion rate improved to 3.45

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Перейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

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

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

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

single

some-alt