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

Проблематика интеграции современных технологий автоматизации проектирования и моделирования

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

Рассмотрим поэтапно весь процесс: от получения и обработки растрового изображения до создания скрипта, векторизации кривой и экспорта значений во внешний файл. В качестве примера возьмем отсканированное изображение графиков аэродинамического расчета воздушного винта (рис. 1).

Рис. 1. Отсканированное исходное изображение Рис. 1. Отсканированное исходное изображение

Обработка растра

В первую очередь изображение с графиком требуется отсканировать и сохранить без потери качества. В зависимости от типа носителя и размера изображения необходимо подобрать оптимальное разрешение, желательно — не ниже 300 dpi и не выше 600 dpi. Режим сканирования выбирается исходя из цветовой гаммы и наличия фона на изображении. В некоторых случаях при сканировании в монохромном режиме не удается добиться четкости и однородности кривой линии графика. В этом случае лучше произвести сканирование в градациях серого или в индексированном режиме (палитра), а затем программным способом в Spotlight выделить нужные объекты на монохромный слой. Это можно осуществить при помощи команды Бинаризация или Адаптивная бинаризация (при наличии неоднородного градиентного фона). Программа Spotlight позволяет векторизовать объекты на любом цветовом типе растра, но проще и более корректно производить векторизацию на монохромном изображении.

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

  • Устранение перекоса — компенсирует угол перекоса, эффективен для устранения искажений при сканировании на планшетном сканере;
  • Корректировка по четырем точкам — устраняет нелинейные деформации на растре. Для этого следует задать известные точные габариты прямоугольной рамки и указать соответствующие четыре точки на растровом изображении. Данный метод эффективен, когда изображение содержит габаритный прямоугольник с заранее известными размерами;
  • Калибровка — инструмент, позволяющий компенсировать сложные нелинейные искажения. Данные для команды могут быть заданы по произвольному набору точек или по опорной сетке.

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

Для привязки изображения к системе координат можно создать ПСК (пользовательская система координат) по точке, указав начало в «нуле», и задать нужное направление осей (рис. 2). Масштабный коэффициент значения осей можно будет установить и позже: в скрипте при выгрузке точек с графика или при обработке выгруженных значений (рис. 3).

Рис. 2. Привязка обработанного растрового изображения к ПСК Рис. 2. Привязка обработанного растрового изображения к ПСК
Рис. 3. Создание ПСК Рис. 3. Создание ПСК

Векторизация полилинии графика

Оптимальный вариант для векторизации графика — трассировка полилинии (полуавтоматический режим). Для достижения наилучшего результата необходимо корректно настроить диалог Параметры конверсии: установить максимальную точность для получения наибольшего количества сегментов в полилинии и задать максимальную толщину линии (рис. 4).

Рис. 4. Настройка Параметров конверсии для векторизации полилинии Рис. 4. Настройка Параметров конверсии для векторизации полилинии

В процессе трассировки пользователь контролирует процесс, при необходимости задает направление трассировки, вносит корректировки (рис. 5). Результатом трассировки является векторная полилиния, точно повторяющая контуры растровой линии графика. Векторную полилинию можно отредактировать либо в ручном режиме с помощью команд на панели Редактирование полилиний при включенном соответствующем режиме (рис. 6), либо в автоматическом режиме посредством команды Автоматическая коррекция полилиний.

Рис. 5. Трассировка полилинии Рис. 5. Трассировка полилинии
Рис. 6. Коррекция векторной полилинии Рис. 6. Коррекция векторной полилинии

В профессиональной версии Spotlight многие необходимые пользователям возможности и инструменты могут быть реализованы при помощи открытой архитектуры программы. Открытая архитектура базируется на технологии ActiveX, которая позволяет разрабатывать собственные приложения. Эти приложения могут создаваться при помощи внешнего или встроенного редактора кода, поддерживающего языки JScript и VBScript (рис. 7). Для формирования пользовательских диалогов и команд применяются WYSIWYG-редактор html-форм и Мастер ActiveX.

Рис. 7. Создание скрипта в Мастере ActiveX Рис. 7. Создание скрипта в Мастере ActiveX

Наряду с программным обеспечением в поставку входит документация разработчика «WiseImage X Open Architecture Reference». Руководствуясь этим документом, пользователь может написать собственный скрипт и создать кнопку на панели инструментов для его запуска. В нашем примере приведен достаточно простой код, описывающий создание текстового файла *.txt, выбор полилинии в модельном пространстве и автоматический экспорт координат вершин в созданный текстовый файл.

Полученные данные в дальнейшем могут быть обработаны в специализированных расчетных программах, например, загружены в MS Excel для более детального изучения полученной функции или в Mathcad для интерполяции и построения семейства кривых (рис. 8).

Рис. 8. Выгрузка точек во внешнее приложение для дальнейшей обработки Рис. 8. Выгрузка точек во внешнее приложение для дальнейшей обработки

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

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

Илья Шустиков,
Игорь Хитров
ЗАО «СиСофт»
Тел.: (495) 069−4488
E-mail: shustikov@csoft.ru
khitrov@csoft.ru