Профессиональные инструменты Spotlight Pro по восстановлению качества, редактированию и векторизации позволяют существенно сократить время на модернизацию и перевыпуск документов в электронном виде на основе бумажного архива. Эти уникальные особенности гибридного редактора Spotlight Pro были по достоинству оценены пользователями, перед которыми стоят задачи обработки сканированных изображений.

Что же касается Spotlight Pro, то, к сожалению, у многих пользователей сложилось не совсем полное представление о возможностях этой платформы. Зачастую версия Pro воспринимается лишь как средство автоматической векторизации. Обычное представление такое: вставить отсканированную картинку, нажать кнопку автоматической векторизации и получить векторы для дальнейшего редактирования. Многие просто забывают, что Spotlight Pro — полноценная платформа для проектирования, объединяющая в себе все возможности векторного и растрового редактора и не только.

В этой статье мы хотели бы обратить ваше внимание на одну из особенностей платформы Spotlight Pro — открытую архитектуру, базирующуюся на технологии ActiveX. Открытая архитектура программы позволяет реализовывать многие возможности и использовать инструменты, необходимые при решении различных прикладных задач.

История создания скриптов началась с идеи предоставить пользователю возможность писать собственные команды. К этому моменту уже было реализовано выполнение командных файлов, но порой задача стояла более комплексная — не только выполнить некую последовательность команд, но и автоматически рассчитать те или иные параметры, получить доступ к объектам документа для их изменения, а также осуществить интерактивную связь с пользователем. Так появилась открытая архитектура WiseImage (WiseImage Open Architecture). С помощью этой библиотеки мы можем получить доступ ко всем объектам документа, наборам слоев и растров и т.д.

Открытая архитектура базируется на технологии ActiveX, которая позволяет разрабатывать собственные приложения. Эти приложения могут создаваться при помощи внешнего или встроенного редактора кода, поддерживающего языки JavaScript и VBScript. Для создания пользовательских диалогов и команд используются визуальный редактор HTML-форм и Мастер ActiveX. Рассмотрим некоторые примеры решения прикладных задач с использованием этой технологии.

Задача № 1

Провести инвентаризацию ламп уличного освещения.

Исходные данные: черно-белое растровое изображение отсканированного планшета (рис. 1).

Рис. 1. Исходное изображение Рис. 1. Исходное изображение

Реализация

Была разработана следующая методика.

  1. С помощью команды Найти и заменить производится поиск похожих по форме элементов растра с их заменой на векторную точку. Полученная информация избыточна и превышает реальное количество объектов примерно в 10−20 раз.
  2. С помощью автоматической векторизации производится поиск замкнутых контуров и текста.
  3. Скрипт:
    1. предлагает пользователю определить максимальный размер элемента (рис. 2);
      Рис. 2. Определение максимального размера элемента Рис. 2. Определение максимального размера элемента
    2. ищет все замкнутые контуры, в границах которых присутствует векторная точка (и) и не превышающие заданного пользователем размера (рис. 3). Создает массив с информацией и предлагает пользователю проверить все найденные совпадения;
      Рис. 3. Поиск замкнутого контура Рис. 3. Поиск замкнутого контура
    3. в результате проверки совпадений или согласия пользователя на все найденные совпадения скрипт удаляет из документа всю ненужную векторную информацию, заменяя ее на блок с атрибутом идентификационного номера элемента (рис. 4).
      Рис. 4. Поиск элемента и замена Рис. 4. Поиск элемента и замена

Результат автоматической замены на всем изображении показан на рис. 5.

Рис. 5. Поиск и замена на всем исходном изображении Рис. 5. Поиск и замена на всем исходном изображении

Задача № 2

Создать универсальный растеризатор с заданным форматом бумаги. Процесс растеризации позволяет перевести векторную или гибридную графику в растровую форму. Такая задача может стоять перед пользователем, если ему необходимо передать свои векторные чертежи сторонней организации в нередактируемом формате.

Исходные данные:

  • растровые документы (TIFF, JPG, BMP и т.д.);
  • векторные документы (CWS, DWG, DWF);
  • гибридные документы (GEO MPageTIFF, CWS, DWG и т.д.).

Реализация

Для определения множества обрабатываемых файлов было решено использовать Мастер пакетных заданий.

Скрипт (рис. 6):

Рис. 6. Создание скрипта растеризатора Рис. 6. Создание скрипта растеризатора
  1. Автоматически определяет набор объектов в документе.
  2. Создает цветной или черно-белый растр определенного размера.
  3. Устанавливает нужный масштаб растра для покрытия всего документа.
  4. Производит растеризацию всех объектов.
  5. Удаляет исходные данные из документа.
  6. Результат сохраняется с помощью Мастера пакетных заданий в нужную папку (рис. 7). Рис. 7. Запуск скрипта растеризатора в пакетном режиме Рис. 7. Запуск скрипта растеризатора в пакетном режиме

Задача № 3

Создание архитектурной сетки. Создание калибровочной сетки. Калибровочная сетка используется в команде Калибровка для устранения сложных нелинейных искажений в отсканированном растровом документе (рис. 8).

Рис. 8. Исходное изображение Рис. 8. Исходное изображение

Исходные данные: монохромное или цветное растровое изображение.

Реализация

Для задания размеров используется текстовый файл следующего формата:

X:
2100
2100
2100
Y:
3300
3300
2100
  1. При запуске скрипта пользователь должен указать текстовый файл с размерами сетки (рис. 9).
    Рис. 9. Выбор файла с координатами Рис. 9. Выбор файла с координатами
  2. Затем скрипт автоматически создает сетку из векторных линий, используя для этого отдельный слой (рис. 10).
  3. Вместе с тем скрипт создает калибровочную сетку, совпадающую с архитектурной (рис. 11).
    Рис. 11. Автоматически созданная калибровочная сетка Рис. 11. Автоматически созданная калибровочная сетка
  4. После этого пользователь должен сопоставить калибровочную сетку с архитектурной сеткой из документа.

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

Задача № 4

Произвести инвентаризацию электрического оборудования, представленного на поэтажных планах.

Исходные данные: (рис. 12).

Рис. 12. Фрагмент поэтажного плана Рис. 12. Фрагмент поэтажного плана
  • растровые планы;
  • векторные DWG-документы;
  • гибридные документы.

Реализация

Для реализации этой задачи был использован комплексный метод, включающий:

  1. Автоматическую векторизацию.
  2. Поиск и замену векторных и растровых элементов.
  3. Анализ «легенды» чертежей с автоматическим выделением элементов.
  4. Создание отдельного ActiveX для визуализации работы скриптов и создания отчетов.

Главная задача состояла в создании инструмента контроля и проверки распознанных электрических элементов.

Пользователям знаком такой инструмент в составе Spotlight Pro, как Проверка распознанных текстовых объектов после автоматической векторизации. Но в данном случае проверять нужно было не текст, а распознанные блоки (рис. 13).

Рис. 13. Диалог проверки распознанных блоков Рис. 13. Диалог проверки распознанных блоков

Этот скрипт был реализован на C# .Net (как мог бы быть реализован и на любой другой платформе).

Скрипт анализирует все блоки в документе, строит «карту» и предлагает пользователю либо принять или удалить распознанный элемент, либо добавить новый из визуального списка, если этот элемент не был распознан автоматически.

Результаты автоматически экспортируются в базу данных пользователя.

Помимо описанных выше примеров пользователями и разработчиками программы Spotlight Pro было создано большое количество всевозможных скриптов для различных областей проектирования. Эти скрипты позволили быстро и эффективно решить прикладные задачи на отсканированных растровых изображениях.

Начиная с шестой версии Spotlight Pro уже не просто графический редактор, но и платформа для создания внешних пользовательских приложений. Попробуйте решить свои прикладные задачи с помощью открытой архитектуры Spotlight Pro. В этом вам всегда помогут профессионалы CSoft Development, разработавшие для вас этот удобный инструмент.

Алексей Анисимов
CSoft Development
E-mail: alan@csoftcom.com
Илья Шустиков
CSoft
Тел.: (495) 069−4488
E-mail: shustikov@csoft.ru