Middle — Senior
39
Как найти треугольник на изображении без deep learning?
Сұралған компаниялар
АТОМ
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()
Этот подход позволяет эффективно находить треугольники без использования нейросетей.