У меня есть изображение с плавающей точкой, хранящееся в массиве с плавающей точкой 2d.
Имеется графический интерфейс, который отображает изображение (в оттенках серого).Одним щелчком мыши я могу точно указать и показать исходное значение пикселя.
Теперь, учитывая список точек на изображении, многоугольник (возможно, вогнутый), я бы хотелчтобы выделить пиксели внутри многоугольника.
Это то, что я имел в виду.
- Создайте многоугольник, используя модифицированный алгоритм рисования линий Брезенхэма.Отметьте и сохраните точки edge для каждой линии сканирования в
HashMap<ScanPoint, List<EdgePoint>>
aka HashMapList - . Определите точки, изогнутые внутри (где внутренний угол> 180 градусов).(Чтобы добавить их дважды в HashMapList, чтобы они могли быть такими)
- Используйте алгоритм заливки полигонов линий сканирования, чтобы выделить все внутренние точки.
Теперь у меня проблема с2-й пункт.Я не могу провести различие между изображением ниже , где мне нужно было бы дважды добавить «вогнутую» точку в HashMapList для выполнения задачи.Потому что он создает две отдельные области (одна из которых заканчивается, а другая начинается в той же точке.)
и изображении ниже , где мне не нужнодобавьте его дважды в HashMapList, потому что он не создает отдельных областей.
Как различить эти два пикселя / точки?
Есть ли в Java какая-либо библиотека, которая манипулируетгеометрия на изображениях?JTS работает над чистой геометрией, а координаты находятся в плавающей точке, что не очень помогает.Пиксели на изображении имеют целочисленные координаты.