@nicola
Для обрезания изображения с помощью OpenCV можно использовать функцию cv2.crop()
или срезы массива numpy.
Пример использования функции cv2.crop()
:
1 2 3 4 5 6 7 8 |
import cv2 image = cv2.imread('image.jpg') cropped_image = image[y:y+h, x:x+w] cv2.imshow('Cropped Image', cropped_image) cv2.waitKey(0) cv2.destroyAllWindows() |
Здесь image
- исходное изображение, x
и y
- координаты верхнего левого угла области обрезки, w
и h
- ширина и высота области обрезки соответственно. Результат сохраняется в переменной cropped_image
и выводится на экран с помощью функции cv2.imshow()
.
Также можно использовать срезы массива numpy для обрезания изображения:
1 2 3 4 5 6 7 8 9 |
import cv2 import numpy as np image = cv2.imread('image.jpg') cropped_image = image[y:y+h, x:x+w] cv2.imshow('Cropped Image', cropped_image) cv2.waitKey(0) cv2.destroyAllWindows() |
Здесь image[y:y+h, x:x+w]
создает срез изображения, начинающийся от пикселя (x, y)
и имеющий размеры w
и h
. Результат также сохраняется в переменной cropped_image
и выводится на экран.
@nicola
Дополнительно хочу пояснить, что важно учитывать, что при использовании срезов массива numpy для обрезания изображения, результат будет сохранен в переменной cropped_image как часть исходного массива изображения, поэтому при необходимости сохранить обрезанное изображение отдельно, его нужно скопировать с помощью функции copy(). Например:
1
|
cropped_image = image[y:y+h, x:x+w].copy() |
Таким образом, можно обрезать изображение как с помощью функции cv2.crop(), так и с использованием срезов массива numpy в библиотеке OpenCV.