Вот подход
- Преобразование изображения в оттенки серого
- Обнаружение канни по краям
- Поиск контуров и фильтра с использованием минимальной / максимальной области контура
Я реализовал это в Python OpenCV, но вы можете адаптировать ту же стратегию с C #
import cv2
image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(gray, 50, 200, 1)
cnts = cv2.findContours(canny, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
for c in cnts:
area = cv2.contourArea(c)
if area > 10000 and area < 15000:
cv2.drawContours(image, [c], 0, (36,255,12), 2)
cv2.imshow('canny', canny)
cv2.imshow('image', image)
cv2.waitKey()