Middle — Senior
33
Как найти треугольник на изображении без deep learning?
Companies where asked
АТОМ
Answer from AI
sobes.tech AI
Для поиска треугольника на изображении без использования deep learning можно применить классические методы компьютерного зрения и обработки изображений:
-
Предобработка изображения:
- Преобразовать изображение в оттенки серого.
- Применить размытие (например, Gaussian Blur) для снижения шума.
-
Детекция краёв:
- Использовать алгоритм Canny для выделения контуров.
-
Поиск контуров:
- Найти контуры с помощью функций, например,
findContoursв OpenCV.
- Найти контуры с помощью функций, например,
-
Анализ контуров:
- Для каждого контура аппроксимировать форму с помощью
approxPolyDP. - Если аппроксимация имеет 3 вершины — это треугольник.
- Для каждого контура аппроксимировать форму с помощью
-
Дополнительные проверки:
- Проверить площадь контура, чтобы исключить шум.
- Проверить углы или соотношения сторон для фильтрации неправильных форм.
Пример на 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()
Этот подход позволяет эффективно находить треугольники без использования нейросетей.