Страница 1 из 1

Инверсия чёрно-белых растров в пакетном режиме

Добавлено: 03 июл 2015, 13:49
Унру Эдуард
Здравствуйте!
Решил написать, потому что уже потерял всякую надежду самому "дойти" до истины. :cry:
Дело вот в чём. Есть проект, в котором более 200 чёрно-белых растров. Для адекватной работы их нужно инвертировать (поменять местами чёрный и белый цвета). По отдельности с каждым растром это сделать не составляет труда, но их МНОГО ( :!: ). Эта монотонная работа отнимает очень много времени и "чуть-чуть" выбешивает. Проблему добавляет ещё то, что разных проектов с разными неинвертированными растрами тоже много...
Крик о помощи, собственно, заключается вот в чём: подскажите, как инвертировать несколько растров пачками? Есть ли вообще такая возможность?
Во внутренней справке я не нашёл решения проблемы (не исключено, что я не очень внимательно читал).
Пробовал понять, где во внутренностях проекта хранится информация о цветах растра, чтобы поменять значения через блокнот. Судя по всему, она в самом JET-е, а там ничего не понятно.

Версия программы: 9.7 PRO

Очень буду очень благодарен за помощь.

Re: Инверсия чёрно-белых растров

Добавлено: 06 июл 2015, 14:18
Григорий Степанов
Прямой возможности инвертировать группу растров в ET нет. Но есть варианты:

Вариант 1
Чёрно-белые (бинарные) растры образуют площадное мозаичное покрытие единой тематики (например, лесоустроительные планшеты, планшеты-пятисотки и т.д.). В этом случае их можно сшить в единое покрытие, затем, инвертировать сшитый растр и далее работать уже с ним.

Естественно, всё это возможно только при условии, что для каждого из растров была задана Граница отображения, либо поля растров обрезаны и покрытие собрано строго "встык".

Впрочем, если собирается площадное мозаичное покрытие, границы отображения задаются в обязательном порядке, иначе смежные растры "наезжают" на соседей своими полями или зарамочной информацией.

Вот только количество входящих в проект планшетов (200) несколько настораживает...

Вариант 2.
Покрытие собрано, растры "наезжают" друг на друга, какие из них следует инвертировать, понятно только оператору.

Шаг 1. Вызываем Комбинированный растровый инструмент. Создаём новую стратегию из единственной операции Инверсия и сохраняем её. Выключаем кнопку "Просмотр" для ускорения работы.

Шаг 2. Включаем растры покрытия и уменьшаем масштаб отображения, что бы видеть покрытие целиком или его значительную часть.

Шаг 3. Удерживая Alt, указываем на инвертируемый растр (он становится текущим растром). Нажимаем кнопку "Применить" Комбинированного растрового инструмента. Указываем на следующий растр и повторяем операцию.

---------- Примечание ----------
Обычно мы используем чёрные растры с белыми линиями, а в ET для бинарных растров ЧЁРНЫЙ цвет является "прозрачным". То е. если смежные растры "входят" друг-в-друга как в настоящей мозаике, то чёрные поля растра лежащего сверху (ведь растры, это всегда прямоугольники!) не могут "стереть" часть белых линий растров лежащих ниже. Соответственно, такую мозаику легко превратить в один, "сшитый" растр ... но только при условии, что для растров заданы Границы отображения,иначе вся посторонняя, зарамочная информация (если она не обрезана) тоже "отпечатается" на растрах-соседях.

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 10:22
Унру Эдуард
Григорий, спасибо за совет! Второй вариант действительно чуть быстрее, чем работа по-старинке.
А нет ли возможности как-то "хитро" обработать растры вне программы Easy Trace? Я пробовал через разные просмотрщики сделать инверсию, но ET на это никак не отреагировал (лишь, иногда выдавал предупреждение об изменение растра вне программы). У меня есть подозрение, что это связано с тем, что при пересохранении меняется тип сжатия. В этом есть хоть какая-то доля истины?

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 11:29
Донецков
Формат файла растра какой?
Если стандартный, то есть много графических редакторов, которые могут пакетно изменять параметры...

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 12:28
Унру Эдуард
Изначально, растры - бинарные tiff'ы с LZW-сжатием. Но, при добавлении их в проект, сжатие меняется на какое-то "Факс-кодирование Группа 4". Графические редакторы (которыми я пользовался) не "умеют" так сжимать. может, оно просто как-то по другому называется?

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 12:48
Ariki
Этот вид сжатия ещё называется CCITTFAX4. Пакетно обработать растры вне EasyTrace лучше всего с помощью утилиты gdal_translate, там можно настроить все параметры GeoTIFF. В частности, существуют теги PHOTOMETRIC_MINISBLACK и PHOTOMETRIC_MINISWHITE, из-за которых в некоторых программах просмотра растры оказываются инвертированными.

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 13:25
Унру Эдуард
Спасибо! Обязательно попробую эту вещь!

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 14:56
Григорий Степанов
Небольшое дополнение.

Если растры уже были привязаны к полю проекта, то сообщение "Растр XXX был изменён за пределами проекта ..." может появиться только в случае изменения "цветности" (бинарный->палитровый->truecolor ...) или размеров растра. Именно размеров, ширины или высоты, а не объёма на диске или применяемого метода сжатия.

Сам факт инверсии растров за пределами проекта программе безразличен (так что, после пакетной обработки, вам не придётся 200 раз подтверждать загрузку изменённых растров :D )

Re: Инверсия чёрно-белых растров

Добавлено: 08 июл 2015, 16:27
Донецков
Если нет желания работать с консольным gdal, то есть графические редакторы, типа FastStone ImageViewer, в нем можно выбрать несколько файлов и выполнить нужную трансформацию...