Сугубо ИМХО. Никогда этим не интересовался, но мысль выскажу.
В конкретном случае можно идти слева-направо, считывать по столбикам и считать количество не зеленых отрезков, запоминать, смотреть следующий и сравнивать, чтобы для каждого отрезка из предыдущего столбика находился хотя бы один не зеленый пиксель в том же диапазоне по оси Y. Если в какой-то момент не нашлось, то count++, иначе запоминаем новые отрезки и идём к следующему столбику.
p.s. слева-направо или сверху-вниз без разницы по идее. Этот Франкенштейн будет работать в обоих направлениях.