У меня есть изображение, похожее на изображение, показанное ниже.
Я хочу удалить как черные, так и красные круги изображения, не затрагивая красные квадраты внутри изображения (так как красные круги и красные квадраты имеют одинаковое значение пикселя).
Я пытался использовать cv2.HoughCircles
для обнаружения красного круга и пытался преобразовать его в черный цвет, но некоторая часть красного круга осталась неизменной, как показано.
И это код, который я использовал для этого.
import numpy as np
import cv2
image = cv2.imread("13-14.png")
output = image.copy()
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.3, 145)
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cv2.circle(output, (x, y), r, (0, 0 , 0), 4)
cv2.imshow("output", np.hstack([image, output]))
cv2.waitKey(0)
Есть предложения? Заранее спасибо.
РЕДАКТИРОВАТЬ 1
Образец выходных данных, который я ищу, является разновидностью этого изображения (цветной или в оттенках серого).