Определение границ растрового изображения
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Определение границ растрового изображения
Помогите решить задачу массовой обрезки растров. Нужно в пакетном режиме определить границы занятые "значимыми" пикселями в растровоом изображении и сохранить их в shapefile. Причем чтобы в качестве Nodata, можно было задавать диапазон значений.
Какой софт можно применить?
Какой софт можно применить?
-
- Easy Trace – эксперт
- Сообщения: 329
- Зарегистрирован: 03 сен 2009, 11:13
- Репутация: 64
- Откуда: Россия, г.Рязань
- Контактная информация:
Re: Определение границ растрового изображения
Можно увидеть пример растра с нанесёнными векторными контурами?
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Определение границ растрового изображения
Ну как-то так
- Вложения
-
- map.jpg (76.35 КБ) 8652 просмотра
-
- Easy Trace – эксперт
- Сообщения: 329
- Зарегистрирован: 03 сен 2009, 11:13
- Репутация: 64
- Откуда: Россия, г.Рязань
- Контактная информация:
Re: Определение границ растрового изображения
То есть в примере черный и белый цвета относятся к незначимым (NODATA) пикселам? И это действительно чистые цвета или как в примере диапазоны оттенков близких к белому и чёрному цветам?
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Определение границ растрового изображения
Да, черное и белое - это разные NoData, цвета могут быть не чистые, возможны небольшие отклонения, особенно в JPG
-
- Easy Trace – эксперт
- Сообщения: 329
- Зарегистрирован: 03 сен 2009, 11:13
- Репутация: 64
- Откуда: Россия, г.Рязань
- Контактная информация:
Re: Определение границ растрового изображения
Собственно, основная проблема, как раз и лежит в "не чистоте" цветов в областях NoData. Судя по всему, эти области изначально состояли из чистых цветов, однако, алгоритмы сжатия с потерями, используемые в JPEG породили целый спектр оттенков цвета на границах чёрных и белых областей. Причём, многие из этих оттенков присутствуют и в самом информативном изображении.
Что самое неприятное, оттенки цвета в пограничных областях вряд ли удастся уложить в какие либо диапазоны. Комбинационные цвета, возникающие на границах областей NoData зависят от смежного информативного изображения. А оно, может быть каким угодно...
Я не специалист в обработке снимков, но первое что приходит в голову это:
1. выделение полигональных областей подбором порогов яркостей сверху и снизу;
2. оконтуривание выделенных областей;
3. отсев полученных полигонов по критерию площади;
4. линеаризация контуров (так как изначально, все отрезки границ это прямые линии).
К сожалению, я не могу предложить механизма для пакетного выполнения этих операций в нашем пакете, а интерактивная обработка займёт время сопоставимое с ручной оцифровкой границ.
P.S. Как всегда, экономия на объёмах растровых файлов (JPEG!!!), неизбежно выливается в значительные потери времени при их обработке...
Что самое неприятное, оттенки цвета в пограничных областях вряд ли удастся уложить в какие либо диапазоны. Комбинационные цвета, возникающие на границах областей NoData зависят от смежного информативного изображения. А оно, может быть каким угодно...
Я не специалист в обработке снимков, но первое что приходит в голову это:
1. выделение полигональных областей подбором порогов яркостей сверху и снизу;
2. оконтуривание выделенных областей;
3. отсев полученных полигонов по критерию площади;
4. линеаризация контуров (так как изначально, все отрезки границ это прямые линии).
К сожалению, я не могу предложить механизма для пакетного выполнения этих операций в нашем пакете, а интерактивная обработка займёт время сопоставимое с ручной оцифровкой границ.
P.S. Как всегда, экономия на объёмах растровых файлов (JPEG!!!), неизбежно выливается в значительные потери времени при их обработке...
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Определение границ растрового изображения
Поигрался с картинкой в GRASS (импорт *jpg--> композит RGB (8 уровней) --> задаем NULL по выбранным значениям растра --> разделяем растр на 2 категории (NULL и не-NULL) --> вытаскиваем границы не-NULL растра в вектор --> удаляем автоматом весь мусор, оставляем единственную нужную границу.
Дальше можно вынуть в SHP.
Результат: (слева -- не-NULL растр, справа -- вект. полигон) Позже распишу модули / команды, если интересно. Просьба выложить какой-нибудь "рабочий" растр с привязкой (или хотя бы кусок).
P.S. Да, по идее, все это можно делать автоматом (надо писать спец. скрипт). Но только в случае, если у растров надо "занулить" одни и те же значения.
Дальше можно вынуть в SHP.
Результат: (слева -- не-NULL растр, справа -- вект. полигон) Позже распишу модули / команды, если интересно. Просьба выложить какой-нибудь "рабочий" растр с привязкой (или хотя бы кусок).
P.S. Да, по идее, все это можно делать автоматом (надо писать спец. скрипт). Но только в случае, если у растров надо "занулить" одни и те же значения.
Редактор материалов, модератор форума
-
- Easy Trace – эксперт
- Сообщения: 329
- Зарегистрирован: 03 сен 2009, 11:13
- Репутация: 64
- Откуда: Россия, г.Рязань
- Контактная информация:
Re: Определение границ растрового изображения
1) Отсечение по яркости. Инструмент Выделение тематических слоёв

2) Преобразование к ч.б. Инструмент Бинаризация

3) Оконтуривание Утилита Автоматическое оконтуривание
(если указать "Сохранять контура = Только внешние", то можно не указывать размеры минимальных контуров)

4) Оптмизация контура Утилита Оптимизация формы линий

Время - 1 мин 40 сек
P.S. Но руками построить контур ещё быстрее...

2) Преобразование к ч.б. Инструмент Бинаризация

3) Оконтуривание Утилита Автоматическое оконтуривание
(если указать "Сохранять контура = Только внешние", то можно не указывать размеры минимальных контуров)

4) Оптмизация контура Утилита Оптимизация формы линий

Время - 1 мин 40 сек
P.S. Но руками построить контур ещё быстрее...
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Определение границ растрового изображения
ET, как всегда, хорош, но не "скриптабелен" (понимаю, что такова специфика...)
Вообще первая мысль у меня была насчет ImageMagick ("обрезание" ненужных пикселей) + GDAL (векторизация в gdal_polygonize), но как-то не вышло.
Вообще первая мысль у меня была насчет ImageMagick ("обрезание" ненужных пикселей) + GDAL (векторизация в gdal_polygonize), но как-то не вышло.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость