Képfeldolgozás / automatikus threshold

Képfeldolgozás / automatikus threshold
2007-10-05T15:22:51+02:00
2007-11-06T16:14:47+01:00
2022-11-06T13:10:38+01:00
sone
Sziasztok!

Nos nekem egy olyan kérdésem lenne, hogy nem tud-e valaki egy jól használható és megbízható automatikus threshold algoritmust?

A követelmények: :)
Ne használjon lebegőpontos számokat és műveleteket, mivel ipari felhasználásra van ls gyorsnak kell lennie. Illetve ne legyen semmilyen input adat, hanem adjon egy megbízható bináris képet szöveg tartalmú kamerakép esetén.

Én használok egyet, de ez elég kényes, mivel egy kicsit életlenebb kép esetén már nem adja a megfelelő eredményt:

FOR i := 1 TO rowNumber * w DO
IF i MOD w = 0 THEN
avgGrayLev := avgGrayLev+CARDINAL(PPixel^);
avgGrayLev := avgGrayLev DIV w;
actGrayLev := CARDINAL(PPixel^);
hist[actGrayLev]:=hist[actGrayLev]+1;
LOOP
actThresh := avgGrayLev;
a := 0;
b := 0;
FOR index := 0 TO actThresh DO
a:=a+index*hist[index];
b:=b+hist[index];
END;
b:=b+b;
c:=0;
e:=0;
FOR index := actThresh+1 TO 255 DO
c:=c+index*hist[index];
e:=e+hist[index];
END;
e:=e+e;
IF b=0 THEN
b:=1;
END;
IF e=0 THEN
e:=1;
END;
avgGrayLev := (a DIV b) + (c DIV e);
IF (actThresh = avgGrayLev) THEN
EXIT;
END;
END;
END;

Szóval, ha valakinek van egy csudajó és gyors algoritmusa azt igencsak megköszönném. :)

Szabi
Mutasd a teljes hozzászólást!
Nos rájöttem magamtól az okosságra. Jó ez amit leírtam, de amikor vizsgálom a kívánt részt, akkor ha pl: 120 a threshold érték, megvizsgálom a környezetét is tehát pl: 100-140ig és máris majdnem 100%kon működik a progi.

Szabi
Mutasd a teljes hozzászólást!

  • (csak enyhe kötözködésképpen: sztem ez így egy programKÓD, nem algoritmus. Hogy mit akarsz csinálni, arra csak visszafele lehet következtetni, ami elég bizonytalan lehet, amellett, hogy időrabló).
    Egyébként helyből a klasszikus Székely-Poppe: A szgépes grafikai alapja IBM PC-n/Adaptív vágás fejezetet ajánlanám. Abban van egy gyors algoritmus (szukc. approx) is.
    Egyébként legalább minimális szintű minta(kép) nélkül elég nehéz megmondani, hogy adott esetben melyik alg., milyen paraméterekkel hozhat "jó" (használható, a további algoritmusok számára megfelelő) eredményt.
    Mutasd a teljes hozzászólást!
  • Szia!

    Köszi a választ. Nos igazad van, persze tudok algoritmust is meg képet is beszúrni, de csak hétfőn. Ha van kedved és remélem van :) akkor örülnék, ha meglesnéd.

    Szabi
    Mutasd a teljes hozzászólást!
  • Na fotót csak nem lehet beszúrni ezért a kép nem más mint pl egy vonalkód egy könyv hátulján.

    Nos az algoritmust meg sajnos nem tudom jobban leírni, mint itt a programkód, mivel nem tudok beszúrni egy matek képletet, amit használtam.

    Sajna a könyv nem annyira beszerezhető itt, mivel külföldön dolgozom.

    Szabi
    Mutasd a teljes hozzászólást!
  • Ha esetleg ismernéd a könyvet, amiből kiszedtem az algoritmust:

    J.R.Parker: Algorithms for image processing and computer vision. 119. oldal :)
    Mutasd a teljes hozzászólást!
  • Nos rájöttem magamtól az okosságra. Jó ez amit leírtam, de amikor vizsgálom a kívánt részt, akkor ha pl: 120 a threshold érték, megvizsgálom a környezetét is tehát pl: 100-140ig és máris majdnem 100%kon működik a progi.

    Szabi
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd