Мне нужно обнаружить 3 круга на этом изображении «мое изображение», чтобы найти центры, и я знаю, совмещены они или нет, и покажу разницу. Изображение я получаю в расширении .his, но конвертирую в .png с помощью Pillow.
Я использую Python, OpenCV и NumPy
Я пытаюсь перед использованием подушки, но у меня ничего не получилось.
В этом коде я получаю только внутренний круг. Но мне нужно 2 или 3 для сравнения. Я не понимаю, как работает HoughCircles.
import numpy as np
import cv2
with open('prueba.his', 'rb') as file:
raw_data = file.read()
data = np.frombuffer(raw_data, dtype='uint16') # Assuming 16-bit unsigned integers
data = data[:1024*1024]
data = data.reshape((1024, 1024)).transpose()
if data.shape[0] != 1024 or data.shape[1] != 1024:
print("Warning: Data dimensions do not match expected image size (1024x1024).")
img = cv2.normalize(data, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8UC1)
cv2.imshow('Data', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
blurred = cv2.GaussianBlur(img, (5, 5), 0)
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
cl1 = clahe.apply(blurred)
circles = cv2.HoughCircles(cl1, cv2.HOUGH_GRADIENT, 1.2, 20,
param1=40, param2=35, minRadius=0, maxRadius=0)
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cv2.circle(img, (x, y), r, (255, 255,255), 1)
cv2.imshow('Detected Circles', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Подробнее здесь: https://stackoverflow.com/questions/791 ... this-image
Как я могу обнаружить все круги на этом изображении? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение