Выберите случайный пиксель в качестве начального пикселя. Это становится областью A. Повторно расширяйте A, пока A не станет больше. Это ваша область.
Способ расширения A заключается в поиске соседних пикселей в A, чтобы они имели цвет, аналогичный по меньшей мере одному соседнему пикселю в A.
То, что для вас означает «похожий цвет», несколько изменчиво. Если вы можете сделать ровно два цвета, как вы говорите в другом ответе, то «похожий» будет «равным». В противном случае «подобное» будет означать цвета, которые имеют значения RGB или еще много чего, где каждый компонент двух цветов находится в небольшом количестве друг друга (то есть 255, 128, 128 похож на 252, 125, 130).
Вы также можете ограничить выбранные пиксели, чтобы они были похожи на начальный пиксель, но это работает лучше, когда человек выбирает начальное число. (Я считаю, что это то, что делается в Photoshop, например.)
Это может быть лучше, чем обнаружение кромок, поскольку вы можете работать с градиентами, не отфильтровывая их из-за отсутствия, и вам не нужно обрабатывать полученные обнаруженные кромки в согласованную область. Недостатком является то, что градиент может пройти весь путь от черного до белого, и он будет регистрироваться как одна и та же область, но это может быть тем, что вы хотите. Кроме того, вы должны быть осторожны с реализацией, иначе она будет слишком медленной.