eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Obcinanie frędzli
Ilość wypowiedzi w tym wątku: 5

  • 1. Data: 2014-11-15 11:19:26
    Temat: Obcinanie frędzli
    Od: Borneq <b...@a...hidden.pl>

    Mamy szary obraz, rozmywamy go i poddajemy posteryzacji, to znaczy
    zmniejszamy liczbę odcieni szarości z 256 na mniejszą, np. jasność
    70..79 należy do jednej grupy a jasność 80..89 do drugiej.
    Kolorujemy każdą grupę i otrzymujemy:
    http://i.imgur.com/mgtJb5E.png
    Problemem jest to, że nie otrzymujemy "mapy" a dominują głównie obwódki.
    Przykładowe trudne plamy:
    http://i.imgur.com/HuD086o.png
    http://i.imgur.com/JSKIfyS.png
    http://i.imgur.com/HFlK6c8.png
    http://i.imgur.com/dg4lSfy.png
    http://i.imgur.com/zJL4zvs.png
    http://i.imgur.com/DTUowQQ.png

    Zadaniem teraz jest obciąć wystające "frędzle". Dla jednego obrazu
    wydaje się proste:
    oto bierzemy plamę i scanliniami pionowo wyszukujemy kolor od piksela x0
    do pikelsa x1
    jeśli długość linii x1-x0+1 jest mała wtedy zamalowujemy ją innym
    kolorem, przykładowo pierwszą część kolorem x0-1 a drugą x1+1.
    Możemy potem brać scanlinie pionowe, co trochę będzie wolniejsze bo
    struktura przystosowana jest do scanlinii pioziomych.
    Pierwsza niepokojąca rzecz to wydajność: jest około 300 plam na obrazie
    512x512, niektóre rozciągają się niemal na cały ekran przy czym w tym
    ekranie tylko 3% to kolor plamy. Czyli wielokrotnie będziemy opuszczali
    piksele. Choć takich plam może nie jest dominująca ilość - trzeba by
    sprawdzić.
    Druga rzecz: jeśli usuwamy odcinek frędzla, to jednocześnie pogrubiamy
    plamy leżące po prawej i lewej stronie.
    A te plamy mogą być zarówno tymi których jeszcze nie obrabialiśmy jak i
    te które obrabialiśmy - można to rozpoznać po indeksie koloru.
    Gdy nie obrabialiśmy - pogrubia się plamę, choć pogrubiona może bć
    jeszcze za wąska
    Poza tym ostatecznie: obrobiona plama może podzielić się na kilka części
    - tu trzeba chyba zastosować rozrost ziarna i ponumerowąć kolorem każdą
    część oddzielnie.


  • 2. Data: 2014-11-15 21:37:18
    Temat: Re: Obcinanie frędzli
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-11-15 o 11:19, Borneq pisze:
    > http://i.imgur.com/mgtJb5E.png
    > Problemem jest to, że nie otrzymujemy "mapy" a dominują głównie obwódki.

    Gdy mamy scanlinię, to wtedy można działać gdy na przemian są szerokie i
    wąskie odcinki eliminując te wąskie, ale co gdy wąski sąsiaduje z wąskim?


  • 3. Data: 2014-11-16 09:17:09
    Temat: Re: Obcinanie frędzli
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-11-15 o 21:37, Borneq pisze:
    > Gdy mamy scanlinię, to wtedy można działać gdy na przemian są szerokie i
    > wąskie odcinki eliminując te wąskie, ale co gdy wąski sąsiaduje z wąskim?

    Typowy brzeg wygląda tak:
    http://i.imgur.com/LAMvZ0l.png w powiększeniu 16-krotnym.
    Otóż jest jedna plama, po drugiej stronie biały kolor i są aż trzy
    otoczki grubości 1-3 piksele. To wszystko powinno stać się tą błękitną
    plamą.



  • 4. Data: 2014-11-16 09:27:09
    Temat: Re: Obcinanie frędzli
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-11-16 o 09:17, Borneq pisze:
    > Typowy brzeg wygląda tak:
    > http://i.imgur.com/LAMvZ0l.png w powiększeniu 16-krotnym.

    Mam pierwsze rozwiązania: otóż nie będę bezpośrednio modyfikował rysunku
    ale tworzył jego kopię. Z jednego będę odczytywał niezmodyfikowane, a
    modyfikację zapisywał na drugim. Poza tym ta kopia potrzebna do FloodFilla,
    Obawiam się że będzie tak:
    błękitny pozostanie
    fioletowy stanie się błękitnym
    różowy stanie się fioletowym
    szary stanie się różowym i zniknie
    - z trzech pasków zniknie jeden.
    Czyli trzeba by wielokrotnie przechodzić cały obraz. Gdyby chociaż było
    rozwiązanie, że w jednym kroku niknie połowa pasków a nie jeden, wtedy
    trzeba by przechodzić logarytmiczną liczbę razy razy.


  • 5. Data: 2014-11-16 13:54:53
    Temat: Re: Obcinanie frędzli
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2014-11-16 o 09:27, Borneq pisze:
    >> http://i.imgur.com/LAMvZ0l.png w powiększeniu 16-krotnym.
    > Mam pierwsze rozwiązania: otóż nie będę bezpośrednio modyfikował rysunku
    > ale tworzył jego kopię. Z jednego będę odczytywał niezmodyfikowane, a

    Największy problem jest gdy wiele prążków jest przy sobie. Zadanie: mamy
    wyeliminować prążki grubości <5 a te >=5 powiększyć o wyeliminowane.
    Ale teraz mamy 20 jednopikselowych:
    |0|1|2|3|4|...|19|
    To co powinniśmy uzyskać to jeden prążek na 5 pikseli szerokości 5
    pikseli: będą 0,5,10,15, niby można to zrobić, ale co gdy w następnej
    scanlinii zamiast 0,5,10,15 tymi grubszymi będą 1,6,11,16?
    Uzyskamy siatkę, zamiast pionowych linii

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: