Keresés

Részletes keresés

nadamhu Creative Commons License 2009.03.05 0 0 27
Nagyon régen, még a MobiMouse első verziójában tudni vélem, hogy hogy működött a dolog, mert akkoriban beszéltem a sráccal aki csinálta ezt a részt:

Ha jól emlékszem, egyszerűen lelopta a képernyőtartalmat pixelesen a memóriába, majd egy limitált OCR-t végzett az egérkurzor alatti szövegre. Ha jól emlékszem ez a limitált OCR abból állt, hogy végig enumerálta a rendszerben az aktuálisan elérhető fontokat, ezekből maszkokat hozott létre, és ha nem is egy-az-egyben egyezőséget, de csak valami primitív matching algoritmust alkalmazott ezekre a maszkokra.

Mondjuk csak hallomásból tudok a dologról, és amúgyis azóta ezerszer megváltozhatott...
Előzmény: digicat (26)
digicat Creative Commons License 2009.03.03 0 0 26
Ha ismert a kurzorpozíció akkor ki lehet számolni, hogy melyik karakter fölött van az egér. Egy browseren belül ez nem jelent gondot mert ismert a viselkedése, nem kell azon rágódni, hogy vajon hogyan renderelődik a szöveg. Extrém, sok layeres, összevissza pozicionált dives oldalak esetében lehet nincs megoldás, de az esetek nagy részében kell működjön.
Ha ismert a karakter, akkor már csak a szóhatárokat kell megkeresni mindkét irányban, ami nem olyan triviális, de nem is lehetetlen.
Jó lenne tudni, hogy a Mobimouse Firefox pluginja ugyanúgy működik-e, mint a Windowsos változat, mert ezáltal konkrétabban lehetne következtetni a háttérre.
Előzmény: blogger (25)
blogger Creative Commons License 2009.03.02 0 0 25
Azt hiszem a kolléga arra gondolt, hogy az egér alatti *szót* hogyan lehet kivenni.

A Firebug is csak az egész bekezdést látja az egér alatt, mert DOM szinten nincs szavakra bontva a szöveg.
Előzmény: digicat (24)
digicat Creative Commons License 2009.03.02 0 0 24
"Azért én megnézném, hogy hogyan kezeli le, hogy pont az egér alatti szöveget be tudja olvasni."
Próbáld ki a Firebugot Inspect üzemmódban.
Előzmény: halinorbi (18)
digicat Creative Commons License 2009.03.02 0 0 23
Tehát Mobimouse = szigorított OCR?
Előzmény: halinorbi (22)
halinorbi Creative Commons License 2009.03.02 0 0 22
Az OCR a hasonlóságot vizsgálja. A Mobimouse az egyezőséget a betöltött sémákkal.
Előzmény: digicat (20)
blogger Creative Commons License 2009.03.02 0 0 21
"Firefoxról írtál, nem bármilyen programról."

Így van, de feltételeztem,hogy a Firefox-hoz nincs semmi "belső" kapcsolata, hanem csak abból szedi ki a szöveget, amit kívülről lát belőle.

Egyébként, ahogy lent is szó volt róla, Firefox-on sem látja mindig a szöveget. Ha lenne valami belső hozzáférése, akkor ilyen nem fordulhatna elő, hogy ugyanazon a lapon az egyik bekezdésben el tudja olvasni a szöveget, a másikban pedig nem.

Egyébként az idézet link alapján egyértelműnek tűnik, hogy az általa ismert betűtípusokat hasonlítgatja a grafikus képernyőtartalommal:

"A játékprogram "közönséges" windowsos betűtípusokat használ. Ekkor a MoBiMouse használható, legfeljebb az adott betűtípust fel kell venni a Hozzáadott betűtípusok közé a Betűtípusok beállítása dialógusban."
Előzmény: digicat (20)
digicat Creative Commons License 2009.03.02 0 0 20
"Viszont a Mobi egy független program, úgyhogy nem használhatja ez a módszert."
Firefoxról írtál, nem bármilyen programról.

Egyébként a Mobimouse is használ programspecifikus kiterjesztéseket, pl. Firefox és Acrobat Reader esetében:
morphologic.hu - A szöveg felismerése

Ugyanott írja a működésről:
"1. A játékprogram grafikusan (bitmapesen) írja ki a szöveget. Ekkor a MoBiMouse nem használható.
2. A játékprogram "közönséges" windowsos betűtípusokat használ."
Ez ellentmond az OCR használatának, ugyanis az OCR lényege pont az, hogy pixelekből csinál karaktereket. A ""Beszkennelt" (lapolvasóval beolvasott) szöveget fel lehet ismerni a MoBiMouse-szal?" rész is érdekes, ugyanis explicit írja, hogy szkennelt szöveget nem ismer fel, azt előbb szöveggé kell konvertálni karakterfelismerő (OCR) programmal.
Viszont ha nem OCR, akkor nincs magyarázat a "félig látszó szónak csak felét akarja fordítani" viselkedésre és a betűtípusok megadásának szükségességére.

Lehet meg kellene kérdezni a fejlesztőt a működésről :-)
Előzmény: blogger (17)
blogger Creative Commons License 2009.03.02 0 0 19
Kösz, hogy kipróbáltad a screenshot-ot. Ezek szerint nem vacakoltak, hanem egy univerzális megoldást választottak, ami mindenhol működhet, ha van rá betűmintájuk.

Mindenesetre böngészőn belül valószínűleg meg lehet oldani, hogy bármilyen szóra működjön betűtípustól függetlenül. Majd megpróbálok összedobni rá egy megoldást. Igaz, máshol nem fog menni, csak böngészőkben (nem csak FF), de manapság a dolgok többsége úgyis egyre inkább ott zajlik.
Előzmény: halinorbi (18)
halinorbi Creative Commons License 2009.03.01 0 0 18
már írták.
A mobimouse a képből próbálja kitalálni a szót.
Ezért kell installkor minden betűtípust (még a különböző méreteket is) felvinni a progiba.

valakik itt írták, hogy a böngészőből nem nagy ügy kivenni egy-egy szót, hisz az a html kódban úgyis ott van.
Azért én megnézném, hogy hogyan kezeli le, hogy pont az egér alatti szöveget be tudja olvasni. (sehogy)

A mobimouse működését jól megfigyelheted egy screenshoton, vagy példul ha a webböngésző ablakát kisebbre veszed, úgy hogy előjöjjön a vízszintes csúszka, és ha ilyenkor egy hosszabb szó lemarad a képről... ekkor a mobimouse csak a látható részt próbálja lefordítani.


Én kábé így kezdenék neki egy ilyen proginak:

az egér pozícióját tudjuk. GetCursorPos API függvény
Aztán a képernyő adott pontjának színét is le tudjuk kérdezni: GetPixel (api függvény)

Namost én az egérmutató körül egy kis négyzetet feltérképeznék, és ha találok benne karakterre hasonlító dolgot (bár ezt az összehasonlítást nemtom hogy írnám meg), akkor OK.
Ha nem, akkor egyre nagyobb és nagyobb négyzetet térképeznék fel az egér körül. (hátha egy jó nagy betűméretű szó fölött vagyok -az installkor felvitt legnagyobb betű határozza meg a maximális keresési területet)


Szóval mondjuk, hogy megvan az első értelmes karakter. Innentől már könnyebb bevonni letapogatásra kijelölt területet, hisz a betűtípustól- és mérettől függően adott, hogy mekkora területet (újabb n égyzeteket) kell bevonni a letapogatásba. (jobbra-balra)

A folyamat ilyenkor már be is gyorsulhat hisz elég csak az első karakter betűtípusának karakterivel összehasonlítani a képet.

Ha majd megnézed (én kipróbáltam) a Mobimouse sem tudja értelmezni ha a wordbe egy olyan szót írsz, aminek az egyik fele 10-es a másik 12-es mérettel van írva. Mindig csak azt a felét látja, amelyiken a kurzor épp áll. (vagyis ők is ezt a gyorsítást alkalmazzák)





Előzmény: blogger (15)
blogger Creative Commons License 2009.03.01 0 0 17
A Firebug egy Firefox kiterjesztés, így tényleg nem nagy művészet a böngészőből belülről kiszedni a szöveget.

Viszont a Mobi egy független program, úgyhogy nem használhatja ez a módszert.
Előzmény: digicat (16)
digicat Creative Commons License 2009.03.01 0 0 16
Egy jólnevelt browserből nem nehéz kiszedni a szöveget, mert ott van a DOM-ban szövegesen. A Firebug a teljes forrást kiszedi neked ha akarod, és open source. Inkább a szóhatárok beazonosítása nehezebb a html kódok miatt.
Előzmény: blogger (0)
blogger Creative Commons License 2009.03.01 0 0 15
Nekem nincs a gépemen, ma jártam valakinél, akinek volt, és ott tettem egy próbát a Firefox-szal.

A screenshot-olás jó ötlet a tesztre. Ha van itt valaki, akinél van installálva, az legyenszíves próbálja ki.
Előzmény: chexum (14)
chexum Creative Commons License 2009.03.01 0 0 14
És ha csinálsz screenshot-ot, a képen is megtalálja a szavakat? Ezzel eldőlne, hogy csinál-e betűfelismerést, mintegy utolsó próbaképp. Azért a bitképes betűtípusok felismerése egy kicsit távol van az igazi OCR-től, persze...
Előzmény: blogger (12)
kpityu2 Creative Commons License 2009.03.01 0 0 13
Nem tudom, hogy a mostani verzió hogy működik, de a régiben az első induláskor ki kellett választani a használt fontkészleteket. Ha keveset választott ki az ember akkor nem ismerte fel, ha sokat akkor belassult a progi. Ha nem ismerte fel a szöveget akkor hozzá lehetett adni újabb készletet, de a kijelölés is segített ha pl. csak egy-két karaktert látott a szóból.
Előzmény: blogger (12)
blogger Creative Commons License 2009.03.01 0 0 12
Ez kétség kívül megmagyarázná azt, hogy ugyanazon az oldalon az egyik szöveget kezelte nekem, a másikat meg nem. Az egyikhez talált betűtípus mintát, a másikhoz pedig nem.
Előzmény: kpityu2 (11)
kpityu2 Creative Commons License 2009.03.01 0 0 11
Az OCR azért elég kifinomult dolog. :-) De igazából nem tudom. 10 éve van Mobim még anno pénzért vettem az azóta ingyenes verziót. Akkor még nem kezelte a pdf-et. Később külön lehetett megvenni a pdf-es verziót. A Firefox esetében még működhet a közvetlen hozzáférés, ha ismerik a renderelő modult. De szerintem nem vacakoltak vele külön, hanem betárazzák a .ttf fájlokat és felismertetik. Ezért van, hogy a cifrább betűtípusokkal nem boldogul. Ha a karakterkódot használná akkor mindegy lenne neki a kinézet.
Előzmény: blogger (9)
blogger Creative Commons License 2009.03.01 0 0 10
A Google Translate a böngészőből csinálja, vagyis Javascript-ből van hozzáférése a dolgokhoz. Ez egyszerű.

De a Mobi kívülről csinálja meg ugyanazt anélkül, hogy közvetlen hozzáférése lenne a progam belsejéhez.
Előzmény: Törölt nick (7)
blogger Creative Commons License 2009.03.01 0 0 9
Az OCR egy kézenfekvő ötlet, de ebben nincs semmi kifinomultság. Ez brute force. Arra lennék kíváncsi, hogy van-e ennél frappánsabb megoldás.
Előzmény: kpityu2 (6)
blogger Creative Commons License 2009.03.01 0 0 8
Igen, ez windows controlból szedi, vagyis Firefox-ból ezzel nem tudsz kiszedni szöveget. Ez a trükkös.
Előzmény: gábris (4)
kpityu2 Creative Commons License 2009.03.01 0 0 6
Win control-ból gondolom nem nagy ügy. A többi esetben, meg talán ismerik a renderelő részt. Végül is a kijelölés működik, vagyis van rá hívás. De azért annyira nem lehet egyszerű, mert elég gyakran hibázik. A korai verziónak pl. be kellett olvasnia a betűkészletet ahhoz hogy felismerje. Ez alapján pixeles felismerésre tippelek.
Előzmény: blogger (5)
blogger Creative Commons License 2009.03.01 0 0 5
Jogvédelmük legfeljebb a konkrét megvalósításra lehet, de az elvre nem. Legalábbis Európában.

Engem az elv érdekelne.
Előzmény: kpityu2 (3)
gábris Creative Commons License 2009.03.01 0 0 4
Itt egy aranyos kis program, a szerző forráskódot is mellékelt hozzá! :)
kpityu2 Creative Commons License 2009.03.01 0 0 3
Sőt. A pdf-ből is kiszedi. :-) Azt hiszem, a megoldás a Morhologic jogvédett tulajdona. Volt itt már egy topic róluk. Valszeg írtak vagy vásároltak erre a 2-3 esetre külön modult.
blogger Creative Commons License 2009.03.01 0 0 2
Angol nyelvű szó fölé vittem, és kiírta a jelentését. Triviális szavakkal próbáltam, úgyhogy menni kellett volna.

De nem a hiba az igazán érdekes, hanem hogy ahol ki tudta szedni, ott hogyan tudta? A Firefox saját maga rajzolja a cuccokat az oldal renderelésekor, ezért egy pixelhalmazon kívül szerintem ott nem láthatna mást, mégis ki tudta szedni valahogy.
Előzmény: Törölt nick (1)
Törölt nick Creative Commons License 2009.03.01 0 0 1
Milyen nyelvű szó fölé viszem, és milyen nyelven írja ki a jelentését? Nem biztos, hogy hibátlan az esetleírás...
Előzmény: blogger (-)
blogger Creative Commons License 2009.03.01 0 0 0
Egyébként Firefox-on sem ment tökéletesen, mert egy bekezdésben működött, de ha a bekezdés címére mentem (ami ugyanolyan sima szöveg volt, csak H1), akkor abból nem tudta kiszedni, szóval nem világos hogyan működik, mert a kétféle text között HTML és browser szinten nem kellene, hogy különbség legyen.
Előzmény: blogger (-)
blogger Creative Commons License 2009.03.01 0 0 topiknyitó
Az itt említett ingyenes szótárnál is kényelmesebb lehetne, ha tudnám, hogyan lehet megcsinálni, mert akkor még csak ki sem kellene jelölni a szót.

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!