Как сделать круглую обрезку изображения в opencv?

Пользователь

от charles.orn , в категории: Другие , 2 месяца назад

Как сделать круглую обрезку изображения в opencv?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от mona_terry , 2 месяца назад

@charles.orn 

Для того чтобы сделать круглую обрезку изображения в OpenCV, можно использовать маску, которая будет определять область обрезки. В данном случае, мы можем создать черное изображение того же размера, что и исходное изображение, и нарисовать на нем круг белым цветом.


Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import cv2
import numpy as np

# Загрузка исходного изображения
image = cv2.imread('image.jpg')

# Создание маски круга
mask = np.zeros(image.shape[:2], dtype=np.uint8)
circle_center = (image.shape[1] // 2, image.shape[0] // 2)
radius = min(image.shape[1] // 2, image.shape[0] // 2)
cv2.circle(mask, circle_center, radius, (255), -1)

# Применение маски к исходному изображению
result = cv2.bitwise_and(image, image, mask=mask)

# Отображение результата
cv2.imshow('Cropped Image', result)
cv2.waitKey(0)
cv2.destroyAllWindows()


В этом примере мы создаем черное изображение (маску) того же размера, что и исходное изображение, с помощью функции np.zeros(). Затем мы рисуем круг с белым цветом, используя функцию cv2.circle(). Маска затем применяется к исходному изображению с помощью функции cv2.bitwise_and(). Наконец, мы отображаем результат с помощью функций cv2.imshow() и cv2.waitKey().