SASGIS - SAS.Планета
View Issue Details
0001676SAS.Планета[All Projects] Хотелкаpublic03-11-2012 03:3401-12-2021 11:36
VMatveev 
zed 
normaltweakalways
resolvedfixed 
WindowsXPProfessional SP3
110418 
211230211230 
0001676: Попиксельная склейка растров при полигональном выделении
При склейке снимков с некоторых сервисов, например с bing или Роскосмоса, очень раздражают белые или серые поля по краям снимков. Особенно это касается снимков лежащих не строго по меридиану. На склейке же таких снимков по прямоугольному выделению теряется много информации. Хотелось бы клеить растры строго по полигональному контуру/метке/выделению, выделяя именно нужный массив _пикселов_ а не тайлов. И конечно нужна возможность изменения режима склейки в настройках программы. Спасибо.
VIP, операции с областью, склейка
has duplicate 0003732closed zed Border clipping 
related to 0002718resolved vdemidov При склейке в файл с alpha - делать дырки в кэше прозрачными 
png screen.png (347,689) 03-11-2012 03:34
https://bugtracker.sasgis.org/file_download.php?file_id=1142&type=bug
png 1.png (152,147) 28-11-2021 08:35
https://bugtracker.sasgis.org/file_download.php?file_id=2556&type=bug
png
Issue History
03-11-2012 03:34VMatveevNew Issue
03-11-2012 03:34VMatveevFile Added: screen.png
05-11-2012 08:13vdemidovNote Added: 0009838
05-11-2012 08:13vdemidovStatusnew => confirmed
05-11-2012 08:14vdemidovProduct Version => 110418
05-11-2012 08:14vdemidovTarget Version => 24xxxx
18-05-2015 07:54vdemidovRelationship addedrelated to 0002718
13-10-2015 08:35vdemidovTarget Version24xxxx => 30xxxx.Vip
23-12-2020 12:01zedRelationship addedhas duplicate 0003732
23-12-2020 12:02zedNote Edited: 0009838bug_revision_view_page.php?bugnote_id=9838#r7730
23-12-2020 12:05zedSummaryПопиксельная склейка растров при полигональном выделении. => Попиксельная склейка растров при полигональном выделении
27-11-2021 10:13zedAssigned To => zed
27-11-2021 10:13zedStatusconfirmed => assigned
27-11-2021 10:14zedTarget Version30xxxx.Vip => 211230
27-11-2021 10:18zedNote Added: 0020224
27-11-2021 10:18zedNote Edited: 0020224bug_revision_view_page.php?bugnote_id=20224#r7780
28-11-2021 08:35zedFile Added: 1.png
28-11-2021 08:42zedNote Added: 0020225
28-11-2021 08:59zedTag Attached: VIP
28-11-2021 09:00zedTag Attached: склейка
28-11-2021 09:00zedTag Attached: операции с областью
29-11-2021 17:30zedNote Added: 0020226
01-12-2021 10:03vdemidovNote Added: 0020228
01-12-2021 11:36zedNote Added: 0020229
01-12-2021 11:36zedStatusassigned => resolved
01-12-2021 11:36zedFixed in Version => 211230
01-12-2021 11:36zedResolutionopen => fixed

Notes
(0009838)
vdemidov   
05-11-2012 08:13   
(edited on: 23-12-2020 12:02)
Это можно сделать. И даже не очень сложно. Правда скорость склейки немного упадет, но не сильно.

(0020224)
zed   
27-11-2021 10:18   
vdemidov
Я правильно понимаю алгоритм: в IImageLineProvider при добавлении тайла из кэша, для каждого его пикселя надо сделать проверку попадания пикселя в полигон, и если он не попадает, то закрасить пиксель фоновым цветом?

(0020225)
zed   
28-11-2021 08:42   
Можно тестировать. Включается опцией "Обрезать точно по полигону" / "Precise cropping by polygon" на вкладке Склеить.

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

Пока что не работает для многопоточной склейки в GeoTiff, сделаю позже. И склейка в KMZ игнорирует эту опцию, но там она и смысла не имеет.
(0020226)
zed   
29-11-2021 17:30   
Кажется промахнулся. Закрашивать пиксели надо было внутри TBitmapTileProviderWithBGColor...
(0020228)
vdemidov   
01-12-2021 10:03   
>Кажется промахнулся. Закрашивать пиксели надо было внутри TBitmapTileProviderWithBGColor...
Ну, я это как-то именно туда планировал запихивать. Типа если полигон пересекается с тайлом, то отрисовываем на битмапке этот полигон и используем его как трафарет. Честно говоря уже не помню подробностей как это в GR32 собирался делать.
Сорри, что так поздно отвечаю.
(0020229)
zed   
01-12-2021 11:36   
Перенёс реализацию в TBitmapTileProviderWithBGColor. Теперь обрезка работает для KMZ и многопоточного GeoTiff. Небольшое ускорение от многопоточности есть, но не двухкратное (или кратное числу потоков) как можно было ожидать.