Существует множество программ, облегчающих создание панорамных фотографий - как бесплатных, так и платных. Многие из них были созданы исключительно для склеивания панорам. Но зачастую не каждая такая программа сможет гарантировать ожидаемый результат.
При проработке возможности выполнения полета на некоторые аэродромы, информация по которым отсутствует не только в сборниках аэронавигационной информации Jeppesen, Lufthansa и Navtech, но и в АИПе страны, приходится использовать все возможные и невозможные источники аэронавигационных данных, в том числе и спутниковые фотографии.
В зависимости от сервиса предоставления фотоинформации со спутников, а также конкретного географического места съемки, качество спутниковых фотографий может быть различным: например, многие крупные города сняты с высоким разрешением, а различные мелкие деревни в полупустынной местности имеют лишь общие очертания улиц и объектов, расположенных на них.
Существует несколько способов сохранения спутниковых фотографий.
Самый сложный - использовать специализированное программное обеспечение, которое скачивает кусок спутниковой фото-карты в виде тэйлов (фрагментов) и потом отображает в виде целой картинки. Некоторые такие программы могут даже склеить все тэйлы в один.
Самый простой способ - сделать скриншот экрана монитора и сохранить полученную картинку.
Недостаток метода скриншотов заключается в том, что качество итоговой картинки ограничивается физическим размером монитора и его разрешением в пикселях. И, если какой-либо аэропорт имеет спутниковые фотографии высокого качества, есть смысл сделать несколько скриншотов увеличенных частей аэропорта и потом склеить их в одну картинку - сшить панораму.
Рассмотрим технологию создания панорамы аэропорта на примере одного неизвестного аэродрома, расположенного, судя по фото, в какой-то пустыне:
1.Определяем необходимый масштаб изображения с оптимальным соотношением размера франгмента и качества снимка.
2. Делаем достаточное количество скриншотов с обязательным перекрытием фрагментов друг друга. При сохранении фрагментов кадрируем их таким образом, чтобы исключить наличие лишних объектов на фото (например, служебная информация сервиса спутниковых снимков: копирайт, координаты, высота над поверхностью земли и др.).
В результате в качестве исходного материала имеем 6 снимков размером ~ 1600*800 пикселей (размер у всех фрагментов немного разный из-за различного кадрирования):
3. Склеиваем фрагменты в одну панораму и сохраняем полученный результат.
Сначала была использована профессиональная программа для создания панорам - PTGui, но она показала плохой результат. При создании обычных прямоугольных панорам из фотографий, сделанных на любую фотокамеру, PTGui отлично справляется с задачей, но вот из спутниковых снимков, полученных с помощью скриншотов, она делает не очень хорошую панораму:
На фотографии видно, что взлетно-посадочная полоса немного "поломалась". Махинации с настройками PTGui к сожалению не помогли исправить картинку.
После чего была проведена проверка возможностей графического редактора Adobe Photoshop, у которого имеется встроенный функционал по склеиванию панорам.
1. Через меню программы Adobe Photoshop File -> Automate -> Photomerge (вариант для русифицированного Фотошопа в зависимости от перевода может быть таким: Файл -> Автоматизация -> Фотомонтаж) открыть окно инструмента "Photomerge":
В этом окне можно выбрать и использовать различные настройки для склеивания панорамы, а также нужно выбрать непосредственно сами исходные снимки для сборки панорамы.
Настройки :
В принципе, автоматический вариант (Auto) дает хороший результат, не требующий временных затрат на ручные настройки и подстройки панорамы.
Результат склейки в фотошопе панорамы спутниковых фотографий:
Фрагменты панорамы - каждый в своем отдельном слое с добавлением маски:
Итоговый результат после кадрирования составил качественную фотографию размером 2569*2166 пикселей:
(Размер представленного итогового изображения был специально уменьшен для размещения на сайте.)
Международная организация гражданской авиации (ИКАО) предписывает использовать Всемирную геодезическую систему 1984 (WGS-84) или эквивалентную ей в качестве стандарта для указания координат широты и долготы аэронавигациионных данных. В настоящее время далеко не все страны используют геодезическую систему WGS-84 для определения, хранения и публикации аэронавигациионных данных. Не смотря на...
В Windows 10 можно посмотреть миниатюры окон всех запущенных приложений (кроме работающих в фоне) → навести указатель мыши и, не разворачивая полностью экран, найти среди нескольких открытых окон браузера то самое окно, которое нужно. Или среди нескольких открытых документов Word найти нужный документ. Бестолковая функция. Потому что часто срабатывает тогда, когда это не нужно, закрывая важный контент...
На всех российских самолетах и на иностранных гражданских воздушных судах по умолчанию нет оборудования TACAN. При заходе на посадку по схеме, например, VOR/TAC или еще хуже - просто TACAN от этого такана бортовое оборудование может получать только информацию по дальности (и то не повсем используемым каналам и частотам), курсового наведения не будет. TACAN (tactical air navigation system) -...
По умолчанию объект UITextView не имеет границы (в отличие от UITextField). Иногда это не критично, но в некоторых случаях граница для текстового поля все-таки необходима: Например, когда цвет фона родительского View и нашего UITextView одинаковые, и нет контраста между ними, то пользователям будет не понятно, где находится граница UITextView.
Номер счета в российском банке - это не случайный набор цифр, в нем содержится много информации. Расчетный счет состоит из 20 цифр:
При установке в составе какой-нибудь сборки Windows иногда может некорректно установиться сетевой протокол TCP IP. В этом случае нужно его переустановить, и по-другому просто никак. Как же переустановить сетевой протокол TCP IP? - без небольших "танцев с бубном" этого не сделать.
Если xCode при компиляции проекта ругается на часть кода и выдает ошибку, например, такую: Thread 4: Exception: -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] may only be called from the main thread. Это означает, что данный кусок кода должен выполняться в главном потоке, а не в дополнительном.