[Talk-cz] Tracer - nastavení

Jan Bilak jan.bilak.osm na gmail.com
Pondělí Březen 1 17:13:33 UTC 2010


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
>




Další informace o konferenci talk-cz