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 <[email protected]> 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ý <[email protected]>: >> 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 <[email protected]> >> 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 >>> [email protected] >>> http://lists.openstreetmap.org/listinfo/talk-cz >> >> >> -- >> Petr Dlouhý >> >> _______________________________________________ >> Talk-cz mailing list >> [email protected] >> http://lists.openstreetmap.org/listinfo/talk-cz >> > > _______________________________________________ > Talk-cz mailing list > [email protected] > http://lists.openstreetmap.org/listinfo/talk-cz -- Petr Dlouhý _______________________________________________ Talk-cz mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-cz

