-
1. Data: 2011-04-19 21:23:21
Temat: Znalezienie obwodu kształtu
Od: Karol Y <k...@o...pl>
Witam, macie może pomysł na jakieś sprawne (w miarę szybie) znajdywanie
obwodu wokół kształtu na binarny obrazie? Mam kolorowy, zamieniam na
binarny, trochę erozji / dylatacji i teraz chciałbym znaleźć (stworzyć)
obwody wokół "plam", które mi powstały. Kształty mogą być rozłączne,
więc znalezienie jednego nie determinuje jakiegoś uproszczenia...chyba?
W tej chwili mam to tak, że "plamy" białe na czarnym tle. Szukam białego
piksel po pikselu, jak znajdę to oznaczam czarnego poprzednika /
następnika kolorem czerwonym i viola mam czerwoną obwódkę.
Ale podstawowy problem to wydajność tego rozwiązania. Drugi że zaznaczam
wewnętrzne obwódki wokół "dziur" w plamach (a tego nie chce), to już
powiedzmy, że mniejszy problem.
--
Mateusz Bogusz
-
2. Data: 2011-04-19 21:49:04
Temat: Re: Znalezienie obwodu kształtu
Od: Wojciech Muła <w...@p...null.onet.pl.invalid>
On Tue, 19 Apr 2011 23:23:21 +0200 Karol Y <k...@o...pl> wrote:
> Witam, macie może pomysł na jakieś sprawne (w miarę szybie)
> znajdywanie obwodu wokół kształtu na binarny obrazie? Mam kolorowy,
> zamieniam na binarny, trochę erozji / dylatacji i teraz chciałbym
> znaleźć (stworzyć) obwody wokół "plam", które mi powstały. Kształty
> mogą być rozłączne, więc znalezienie jednego nie determinuje jakiegoś
> uproszczenia...chyba?
>
> W tej chwili mam to tak, że "plamy" białe na czarnym tle. Szukam
> białego piksel po pikselu, jak znajdę to oznaczam czarnego
> poprzednika / następnika kolorem czerwonym i viola mam czerwoną
> obwódkę.
>
> Ale podstawowy problem to wydajność tego rozwiązania. Drugi że
> zaznaczam wewnętrzne obwódki wokół "dziur" w plamach (a tego nie
> chce), to już powiedzmy, że mniejszy problem.
http://etacar.put.poznan.pl/marcin.kielczewski/POiSW
4.pdf
na 16 stronie masz kilka sposobów
-
3. Data: 2011-04-20 05:30:06
Temat: Re: Znalezienie obwodu kształtu
Od: " kenobii" <f...@g...SKASUJ-TO.pl>
Karol Y <k...@o...pl> napisał(a):
> Witam, macie może pomysł na jakieś sprawne (w miarę szybie) znajdywanie
> obwodu wokół kształtu na binarny obrazie? Mam kolorowy, zamieniam na
> binarny, trochę erozji / dylatacji i teraz chciałbym znaleźć (stworzyć)
> obwody wokół "plam", które mi powstały. Kształty mogą być rozłączne,
> więc znalezienie jednego nie determinuje jakiegoś uproszczenia...chyba?
>
> W tej chwili mam to tak, że "plamy" białe na czarnym tle. Szukam białego
> piksel po pikselu, jak znajdę to oznaczam czarnego poprzednika /
> następnika kolorem czerwonym i viola mam czerwoną obwódkę.
>
> Ale podstawowy problem to wydajność tego rozwiązania. Drugi że zaznaczam
> wewnętrzne obwódki wokół "dziur" w plamach (a tego nie chce), to już
> powiedzmy, że mniejszy problem.
>
nie wiem jak to zrobic w jakims 'algorytmicznie' sprawnym sensie
ale takich rzeczy nie robi sie chyba tez zwykle 'na czas' wiec
byc moze mozesz to zrobic 'normalnie'
ja bym nie robil erozji i dylatacji tylko 'detekcje krawedzi'
i zdecydowal sie czy zaznaczam obwodke 'zewnetrzna' czy 'wewnetrzna'
- dokladniej to zdecydowalbym sie raczej na 'wewnetrzna' -
detekcje zrobilbym w ten sposob ze wygasilbym wszystkie zapalone ktore
jako osmiu sasiadow maja tylko zapalone - to co zostaloby to bylyby
te ktore kontaktuja sie z 'openem'
na koniec policzylbym tj dodal sobie w peli piksele tej obwodki
nie wiem czy o to chodzi w zadaniu, ale jest to ciekawe i sensowne,
jest to tez latwe do zrobienia dwie proste podwojne petle,
okolo 10*width*height czytan pikseli i 1*width*height zapisow - moze
ktos wie jak to odciazyc ale ja nie wiem
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
4. Data: 2011-04-20 05:46:35
Temat: Re: Znalezienie obwodu kształtu
Od: " fir" <f...@g...SKASUJ-TO.pl>
w sumie to najwazniejsza jedna trzecia tego kodu
w tym wydaniu to (bo nawet nie trzeba dzielic na dwie petle)
main()
{
int liczbaPixeliWWenetrznejObwodce = 0;
for(int y=0; y<height; y++)
for(int x=0; x<width; x++)
{
if(TenWSrodkuZapalonyAWsrodSasiadowJakisZgaszony(x,y
))
liczbaPixeliWWenetrznejObwodce++;
{
}
jedna pozstala 1/3 to napisanie funkcji
TenWSrodkuZapalonyAWsrodSasiadowJakisZgaszony(x,y)
a druga pozostala 1/3 to wczytanie obrazka do tablicy :/
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
5. Data: 2011-04-20 06:28:43
Temat: Re: Znalezienie obwodu kształtu
Od: Daniel Janus <n...@d...pl>
Dnia 19.04.2011 Karol Y <k...@o...pl> napisał/a:
> Witam, macie może pomysł na jakieś sprawne (w miarę szybie) znajdywanie
> obwodu wokół kształtu na binarny obrazie?
http://en.wikipedia.org/wiki/Convex_hull
pozdrawiam,
Daniel
-
6. Data: 2011-04-24 09:51:50
Temat: Re: Znalezienie obwodu kształtu
Od: Karol Y <k...@o...pl>
Dzięki za podpowiedzi, wydajność niestety jest priorytetem, bo potrzeba
jest funkcjonalność serwera grafik, której to ten nie posiada, dlatego
póki co złożenie morfologii wydaję się najrozsądniejsze.
--
Mateusz Bogusz