Поиск точек сверления на плате с помощью python и openCV

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

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Amgarak

Это конечно не сильно тянет на ответ, но как пример на побаловаться:

import cv2
import numpy as np
import os

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

# Папка с шаблонами
templates_folder = 'img'

# Проход по каждому шаблону в папке
for template_file in os.listdir(templates_folder):
    template_path = os.path.join(templates_folder, template_file)
    print(template_path)
    # шаблон
    template = cv2.imread(template_path)

    # Совпадение по шаблону
    result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)

    # Порог "хороших" совпадений
    threshold = 0.75

    # Позиции, где совпадение превышает порог
    locations = np.where(result >= threshold)

    # Рисуем прямоугольник по полученной позиции
    for loc in zip(*locations[::-1]):
        top_left = loc
        bottom_right = (loc[0] + template.shape[1], loc[1] + template.shape[0])
        center = ((top_left[0] + bottom_right[0]) // 2, (top_left[1] + bottom_right[1]) // 2)

        cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

        # Выводим координаты центра
        print(f"Шаблон: {template_file}, Центр совпадения: {center}")

# Наш результат
cv2.imshow('Найденные места', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Наш исходник: Основа

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

введите сюда описание изображения

Произвольно нарезал 4 дырки из изображения для поиска похожих мест. И вот что получилось: введите сюда описание изображения

Конечно не бог есть что, но как пример в вакууме можно рассмотреть и подумать, а стоит ли идти этим путём.

Бонусом координаты "центра":

введите сюда описание изображения

→ Ссылка