Sobes.tech
Middle — Senior
33

Как найти треугольник на изображении без deep learning?

Companies where asked
АТОМ

Answer from AI

sobes.tech AI

Для поиска треугольника на изображении без использования deep learning можно применить классические методы компьютерного зрения и обработки изображений:

  1. Предобработка изображения:

    • Преобразовать изображение в оттенки серого.
    • Применить размытие (например, Gaussian Blur) для снижения шума.
  2. Детекция краёв:

    • Использовать алгоритм Canny для выделения контуров.
  3. Поиск контуров:

    • Найти контуры с помощью функций, например, findContours в OpenCV.
  4. Анализ контуров:

    • Для каждого контура аппроксимировать форму с помощью approxPolyDP.
    • Если аппроксимация имеет 3 вершины — это треугольник.
  5. Дополнительные проверки:

    • Проверить площадь контура, чтобы исключить шум.
    • Проверить углы или соотношения сторон для фильтрации неправильных форм.

Пример на Python с OpenCV:

import cv2

img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edges = cv2.Canny(blur, 50, 150)

contours, _ = cv2.findContours(edges, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:
    epsilon = 0.04 * cv2.arcLength(cnt, True)
    approx = cv2.approxPolyDP(cnt, epsilon, True)
    if len(approx) == 3:
        cv2.drawContours(img, [approx], 0, (0, 255, 0), 3)

cv2.imshow('Triangles', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Этот подход позволяет эффективно находить треугольники без использования нейросетей.