SASGIS

Веб-картография и навигация

Подложка кадастра - как стереть логотип?

Модератор: Tolik

Подложка кадастра - как стереть логотип?

Сообщение T_Im » 19 мар 2013, 01:03

Логотип размером не в пример Гугла-Яндекса, сильно мешается при просмотре и не дает по нормальному перегенерить вышележащие уровни. Снимки Украины во многом уникальные, лучше Спота, до 17-го уровня и хорошего качества, однако высокие уровни сделаны как то странно и криво, с потерей цветов и контраста: непонятно, что можно рассмотреть, например, на таком тайле 9-го уровня.

Координаты логотипа на тайле фиксированы и этот логотип имеется на посностью белом фоне. Хочется максимально ослабить логотип, желательно, используя ImageMagick (чтобы процедура была пакетной и одновременно можно было подкрутить уровни).
Пока смог некоторым шаманством в IM получить результат как во вложении.

Помниться, где то тут уже заходила речь об удалении логотипов (не могу найти где), может кто подскажет, как это проще всего сделать?
Вложения
!delogo.JPG
T_Im
Постигающий Дао
 
Сообщения: 112
Зарегистрирован: 04 янв 2009, 21:52
Благодарил (а): 15 раз.
Поблагодарили: 23 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение zed » 19 мар 2013, 01:20

Даже такой результат, как у вас на скриншоте, совсем не плох. Технологию не хотите рассказать?
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение vasketsov » 19 мар 2013, 02:49

T_Im писал(а):желательно, используя ImageMagick (чтобы процедура была пакетной и одновременно можно было подкрутить уровни)

По алгоритму компенсации уровней не подскажу.
А вот за ImageMagick подскажу. Что если написать скрипт закачки на PerlScript - можно сразу при скачке тайла натягивать на него алгоритм ImageMagick-ом, и без всякой дополнительной обработки кэша, он будет сразу правильный копиться.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение T_Im » 19 мар 2013, 10:18

zed писал(а):Даже такой результат, как у вас на скриншоте, совсем не плох. Технологию не хотите рассказать?

Результат получен так: на тайл были наложены в Гимпе два слоя, полученные из "белого" логотипа: негатив в режиме "добавление" и позитив с цветом в альфа канале в режиме "вычитание". Коэффициенты прозрачности подбирались экспериментальным путем в Гимпе до максимального визуального подавления логотипа.
В команду для IM это переносится так:
convert tile.jpg logo_inverted.tif logo_alpha_channel.xcf -fx "(u[0]+0.4*u[1]-0.8*u[2])" tile_no_logo.jpg
Где 0.4 и 0.8 - найденные в Гимпе коэффициенты.

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

vasketsov писал(а):если написать скрипт закачки на PerlScript - можно сразу при скачке тайла натягивать на него алгоритм ImageMagick-ом

Прокси сервер поднять? В принципе, да, можно будет сделать, когда будет приемлемый алгоритм.
T_Im
Постигающий Дао
 
Сообщения: 112
Зарегистрирован: 04 янв 2009, 21:52
Благодарил (а): 15 раз.
Поблагодарили: 23 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение zed » 19 мар 2013, 11:01

vasketsov писал(а):Что если написать скрипт закачки на PerlScript - можно сразу при скачке тайла натягивать на него алгоритм ImageMagick-ом, и без всякой дополнительной обработки кэша, он будет сразу правильный копиться.

Тоже об этом подумалось.
T_Im писал(а):Прокси сервер поднять? В принципе, да, можно будет сделать, когда будет приемлемый алгоритм.

Нет, зюзать SACS, который с недавних пор умеет вызывать любые скрипты: http://sasgis.org/mantis/view.php?id=1841
zed
Гуру
 
Сообщения: 2888
Зарегистрирован: 16 авг 2008, 20:21
Благодарил (а): 89 раз.
Поблагодарили: 568 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение DJ VK » 19 мар 2013, 22:28

Автоматически могу помочь, но надо 2 тайла и цвета, почти нереально если только спутник
-знак на фоне одного цвета, например белого + сам цвет
-знак на фоне другого цвета, например зеленого + сам цвет
так кололся Г Г Ц, тайлы собирались из кусков, и потом все за секунды чистилось

За это сообщение автора DJ VK поблагодарил:
T_Im (20 мар 2013, 18:06)
Рейтинг: 5.26%
 
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение T_Im » 19 мар 2013, 22:41

Есть:
Лого на белом фоне:
http://212.26.144.110/tile2/orto_10000/10/613/680.jpg
Лого на черном фоне:
http://212.26.144.110/tile2/orto_10000/ ... /21544.jpg
http://212.26.144.110/tile2/orto_10000/ ... /43089.jpg
Лого на фоне очень однородной воды (по всей видимости вода просто залита цветом):
http://212.26.144.110/tile2/orto_10000/13/4884/5277.jpg
http://212.26.144.110/tile2/orto_10000/12/2408/2648.jpg

Лого на фоне не очень однородной воды:
http://212.26.144.110/tile2/orto_10000/13/4831/5391.jpg
http://212.26.144.110/tile2/orto_10000/ ... /10783.jpg
http://212.26.144.110/tile2/orto_10000/ ... /10782.jpg

Этого хватит?
T_Im
Постигающий Дао
 
Сообщения: 112
Зарегистрирован: 04 янв 2009, 21:52
Благодарил (а): 15 раз.
Поблагодарили: 23 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение T_Im » 20 мар 2013, 18:05

Эврика! Все решилось!
После изучения статьи про альфа канал в Википедии, наконец то понял, как можно найти прозрачность и логотип математически строго решая систему из 2-х уравнений, имея логотип на белом и черном фоне (спасибо DJ VK за подсказку о 2-х цветах).
В итоге, имея логотип на белом и на черном фоне (l_w.tif и l_b.tif соответственно) любой прозрачный логотип полностью будет удаляться с tile.jpg командой
convert tile.jpg Rw.tif Rb.tif -fx "(u[0]-u[2])/(u[1]-u[2])" tile_no_logo.jpg

Результаты - во вложении. Неполное стирание логотипа объясняется скорее всего погрешностями JPG-а. Вероятно, усреднениями некоторую часть артефактов можно будет частично убрать.
Вложения
!2f.JPG
Стирание логотипа

За это сообщение автора T_Im поблагодарили: 3
garl (20 мар 2013, 21:44) • Shoorick (21 мар 2013, 13:36) • zed (20 мар 2013, 20:35)
Рейтинг: 15.79%
 
T_Im
Постигающий Дао
 
Сообщения: 112
Зарегистрирован: 04 янв 2009, 21:52
Благодарил (а): 15 раз.
Поблагодарили: 23 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение T_Im » 20 мар 2013, 23:14

Поскольку есть 3 разных цвета и 3 канала, то всего возможно получить
3 варианта маски и 3*3 = 9 вариантов альфа канала (независимых соответственно 2 и 2*3 = 6).
Усреднив по 10-50 тайлов с логотипом одного цвета и поигравшись с различными вариантами (в том числе и усредняя их между собой) постарался максимально уменьшить артефакты, проявляющиеся при удалении логотипа.
Сравнительный итог улучшений - во вложении (200% кропы логотипа по предыдущей и по улучшенной методике). Стало заметно лучше - на неоднородном фоне артефакты практически не видны.
Чтобы удалить логотип с тайла ("улучшенные" файлы !Mask.tif и !Alpha.tif во вложении):
convert tile.jpg !Mask.tif !Alpha.tif -fx "(u[0]-u[1])/u[2]" tile_no_logo.jpg
Вложения
!2f2.JPG
Результат улучшения
mask_and_alpha_tiffs.ZIP
tif файлы маски и прозрачности
(22.59 KiB) Скачиваний: 231

За это сообщение автора T_Im поблагодарил:
rass (20 мар 2013, 23:34)
Рейтинг: 5.26%
 
T_Im
Постигающий Дао
 
Сообщения: 112
Зарегистрирован: 04 янв 2009, 21:52
Благодарил (а): 15 раз.
Поблагодарили: 23 раз.

Re: Подложка кадастра - как стереть логотип?

Сообщение DJ VK » 25 мар 2013, 08:43

T_Im писал(а):Поскольку есть 3 разных цвета и 3 канала,

ах да, забыл сказать, что коэффициенты надо считать разные по каждому из каналов, и для точности все цифры сначала приводить в double.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 323 раз.


Вернуться в Другие сервисы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3