Вы должны использовать перегруженный метод заливки, который принимает дополнительные параметры:
Imgproc.floodFill(myMat2, flooded, flood, new Scalar(255, 255, 255), new Rect(), lowerDiff, upperDiff, 4);
Нового Rect() объект представляет собой ограничивающий прямоугольник, который будет содержать заливка; lowerDiff
и upperDiff
должны быть инициализированными скалярами с разностным значением в исходное значение пикселя (т. Е. Если это изображение RGB с разницей в значениях цвета, скажем, на вашей начальной точке (наводнении) есть ярко-желтый пиксель, и он окружен слегка менее яркие или чуть более яркие желтые пиксели, они заполнят их белыми цветными прямоугольниками). Вы хотите, чтобы инициализировать их с 3-мя значениями, а именно:
Scalar lowerDiff = new Scalar(10, 10, 10);
И последний целочисленный аргумент, как много соседних пикселей если заливка на самом деле принимать во внимание, 4 по умолчанию, 8 другой вариант. (4 будут отображены северные, восточные, западные и южные пиксели, а 8 - северные, северо-восточные, восточные, юго-восточные и т. Д.).
кто-то меня спасет – user3768470