Это веселая игра для обнаружения. Вам понадобится несколько морфологических инструментов, чтобы решить ее.
Поскольку ваша цель - обнаружить действительные снимки d-touch, вы можете организовать анализ по-другому. Например, с Mathematica:
Определение, охватывает ли черная область хотя бы 3 белые области, заполняя отверстия на изображении и подсчитывая количество подключенных компонентов:
Max@MorphologicalComponents[
FillingTransform[DeleteBorderComponents@img]] >= 3
Определение того, содержит ли половина этих белых областей одну или несколько черных областей, может быть выполнено путем подсчета отверстий внутри каждой белой области:
comp = ComponentMeasurements[DeleteBorderComponents@img, "Holes"];
2*Count[comp, _ -> n_ /; n > 0] >= Length@comp
Определение наличия дополнительных уровней вложенности может быть достигнуто путем запроса количества вложенных компонентов:
Count[
ComponentMeasurements[DeleteBorderComponents@img, "EnclosingComponentCount"],
_ -> n_ /; n > 0] == 0
Некоторые из вышеперечисленных операций могут быть сложными для реализации в Java. Я передам это - сделано с забавной частью!