[Talk-cz] Tracer - nastavení
Petr Dlouhý
petr.dlouhy na email.cz
Pondělí Březen 1 17:39:38 UTC 2010
Ahoj,
tím funguje lépe jsem myslel v jiných směrech - například často správně
ignoruje nesouvisející čáry zasahující do trasovaného objektu.
Myslel jsem, že SmallHoleRemover má problém tenkých čar řešit.
Mimochodem: v Traceru jsou stále některé otravné chyby z dřívějška - občas
trasovaná oblast vůbec neobsahuje bod, na který jsem kliknul; někdy
"vystřelují" body z objektu daleko za jeho hranici; občas hlásí
"IndexOutOfRangeException".
On Mon, 01 Mar 2010 18:13:33 +0100, Jan Bilak <jan.bilak.osm na gmail.com>
wrote:
> Ahoj,
>
> to se divím, že funguje o dost lépe, protože tam prakticky žádné změny
> v tomto směru nejsou. Změny se týkají možnosti nastavení a pluginů
> (filtrů). Pravda je, že jeden ukázkový primitivní filtr
> SmallHoleRemover, jehož zdroják jsem zde posílal, zaceluje malé díry a
> tak může někde přinést lepší výsledky (někde zase horší, pokud jsou
> čáry už tak dost tlusté).
>
> Ten plugin nemá žádné nastavení. Když se koukneš do toho zdrojáku (je
> velmi krátký a zřejmý), tak zjistíš, že natvrdo obarvuje bílé body,
> které na jedné ze 4 základních stran sousedí s černým pixelem. Stačí
> tuto podmínku upravit nebo filtr udělat konfigurovatelný... a může se
> to chovat jinak. Nebo prostě udělat jiný filtr ... tvorba filtru je
> jednoduchá věc, stačí referencovat jednu Class Library a implementovat
> jednoduché rozlišení. Výsledné DLL dát do adresáře plugins a přidat
> filtr v konfiguráku na vhodné místo
>
> Případně "hrubou silou" lze v konfiguráku aplikovat stejný filtr třeba
> 2x za sebou. Tím se také zacelí trochu větší díry (ale není to moc
> pěkné řešení).
>
> <bitmapFilters>
> <filter name="SmallHoleRemover" />
> <filter name="SmallHoleRemover" />
> </bitmapFilters>
>
> Honza
>
>
> 2010/3/1 Petr Dlouhý <petr.dlouhy na email.cz>:
>> Ahoj,
>>
>> zkoušel jsem tu novou verzi, která opravdu funguje zase o dost lépe.
>> Zdá se ale, že to na tenkých čarách stále moc nefunguje - většinou to
>> stejně projde nějakou mezerou.
>> Dá se někde nastavit, jak velkou mezeru to zacelí?
>>
>> On Mon, 01 Mar 2010 13:32:21 +0100, Jan Bilak <jan.bilak.osm na gmail.com>
>> wrote:
>>
>>> Zdroják SmallHoleRemover filtru vypadá takto:
>>>
>>> using System;
>>> using System.Collections.Generic;
>>> using System.Linq;
>>> using System.Text;
>>> using Osm.Kn.Trace.Server.Trace.Interfaces;
>>>
>>> namespace SmallHoleRemover
>>> {
>>> [BitmapFilter("SmallHoleRemover")]
>>> public class SmallHoleRemover : IBitmapFilter
>>> {
>>> const byte BACKGROUND = 0;
>>> const byte PEN = 1;
>>> const byte TEMP = 2;
>>>
>>> #region IBitmapFilter Members
>>>
>>> public byte[][] Filter(byte[][] bitmap)
>>> {
>>> int h = bitmap.Length;
>>> int w = bitmap[0].Length;
>>>
>>> for (int y = 1; y < h - 1; y++)
>>> {
>>> for (int x = 1; x < w - 1; x++)
>>> {
>>> if ((bitmap[y][x] == PEN) &&
>>> (bitmap[y][x - 1] != BACKGROUND || bitmap[y][x
>>> + 1] != BACKGROUND ||
>>> bitmap[y - 1][x] != BACKGROUND || bitmap[y +
>>> 1][x] != BACKGROUND))
>>> bitmap[y][x] = TEMP;
>>> }
>>> }
>>> for (int y = 1; y < h - 1; y++)
>>> {
>>> for (int x = 1; x < w - 1; x++)
>>> {
>>> if (bitmap[y][x] == TEMP)
>>> bitmap[y][x] = PEN;
>>> }
>>> }
>>>
>>> return bitmap;
>>> }
>>>
>>> #endregion
>>>
>>> #region IConfigurable Members
>>>
>>> public void Init(IDictionary<string, string> confValues)
>>> {
>>> }
>>>
>>> #endregion
>>> }
>>> }
>>>
>>> _______________________________________________
>>> Talk-cz mailing list
>>> Talk-cz na openstreetmap.org
>>> http://lists.openstreetmap.org/listinfo/talk-cz
>>
>>
>> --
>> Petr Dlouhý
>>
>> _______________________________________________
>> Talk-cz mailing list
>> Talk-cz na openstreetmap.org
>> http://lists.openstreetmap.org/listinfo/talk-cz
>>
>
> _______________________________________________
> Talk-cz mailing list
> Talk-cz na openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-cz
--
Petr Dlouhý
Další informace o konferenci talk-cz