У меня есть изображение I C d ie, и я хочу вырезать маркировку в центре. Маркировка всегда находится в этом указанном c положении над кружком внизу слева. Идея состоит в том, чтобы сначала найти положение круга, которое я уже достиг с преобразованием грубого круга. Теперь я хочу вырезать часть, где находится маркировка. В идеале это должен быть не квадрат или прямоугольник, а нечто похожее на изображение:
![example](https://i.stack.imgur.com/vcZtd.jpg)
Это часть моего кода:
cimg = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(morph_image, cv2.HOUGH_GRADIENT, 1.3, 20, param1=50, param2=25, minRadius=15,
maxRadius=19)
if circles is not None:
circles = np.uint16(np.around(circles))
for i in circles[0, :]:
# Zeichne äußeren Kreis
cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)
# Zeichne Kreiszentrum
cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)
# Tupel mit x- und y-Koordinaten des Kreiszentrums
circle_center = (i[0], i[1])
print('Die Koordinaten des Kreiszentrums lauten: ', circle_center)
"""cv2.imshow('Kreis', cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()"""
else:
circle_center = None
print('Kein Kreis gefunden')
"""cv2.imshow('Kein Kreis', cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()"""
, поэтому мой cicle center
находится в центре моего круга (например, (124, 370)
). Как я могу вырезать эту часть изображения автоматически? Можно ли как-нибудь обрезать это? В идеале я хотел бы обрезать разметку в другое изображение, чтобы проверить его отдельно, но обычный подход обрезки с marking_img = img[y:y+h, x:x+w]
не сработает, я думаю.
РЕДАКТИРОВАТЬ: Вот исходное изображение:
![enter image description here](https://i.stack.imgur.com/hh3DH.jpg)
Вывод должен быть похож на первое изображение и, если возможно, что-то вроде этого:
![enter image description here](https://i.stack.imgur.com/KtyGQ.jpg)
Итак, в конце я хотел бы получить 2 изображения: одно изображение только с d ie без маркировки и одно изображение только с маркировкой