Я пытаюсь классифицировать зерна на дефектные и исправные, используя инструменты обработки изображений, такие как OpenCV в Python. Одно из изображений выглядит так, как показано на рисунке.

Сначала я сегментировал зерна отдельно, ранжируя, используя пространство HSV, и применил некоторые алгоритмы обнаружения краев как хитрый, адаптивный порог, но я могу найти конкретный способ решить эту проблему, потому что я недавно начал исследовать и все еще изучаю возможности обработки изображений.
Неисправно:
Исправен:

У меня два вопроса:
1) Какие показатели использовать для различения guish зерна, если я использую изображения edge_detected, как показано выше.
2) Поскольку обнаружение краев с помощью canny не удалось на третьем изображении исправных изображений, есть ли другие функции, на которые я мог бы положиться .