Szkriptezhető (makrózható) képszerkesztő?

Fórumok

Szkriptezhető (makrózható) képszerkesztő?

Hozzászólások

Rátaláltam a kooka-ra, ami a kde szkenner frontendje,és majdnem azt csinálja ami nekem kell: a beszkennelt oldalból kijelölt területet egy kattintással elküldi az ocr programnak.

Mégis használhatatlan, mert:

- a felismert szöveg ISO 8859-2 kódolású, így az UTF-8-at használó suse-n használhatatlan (a konverzió időigényes és bonyolult). Pedig az ocr program tudna UTF-8-al is dolgozni, ha a kooka erre "utasítaná"

- a kooka mindig az ocrad-ot futtatja, tekintet nélkül arra, hogy a beállításainál melyik ocr programot választom ki (én a gocr-t választanám inkább)

- a beállításoknál az ocr program útvonala megadható, de nem tudok az ocr program helyett egy wrapper scriptet megadni, mert az ilyen scriptet a kooka úgy látszik még csak el sem indítja. Pedig egy wrapper script nemcsak az ocr programot tudná a megfelelő paraméterekkel elindítani (ld. UTF-8 probléma), hanem egy füst alatt gondoskodhatna a felismert szöveg felolvasásáról is.

Bosszantó, hogy ilyen apróságokon bukik el az ügy.

[quote:6324048037="j_szucs"]Elsőre én is a gimpre gondoltam, és láttam, hogy alapból van is benne ilyen szkript, csak az a baj, hogy mentés közben három párbeszédablakon kell átbukdácsolni. Nekem megy a dolog, de egy csökkent látónak nem menne.

az nem lenne megoldás, hogy esetleg te átírod a scriptet? nem tudom scheme-ben van e, de ha abban lett írva, akkor tulajdonképp - csak tippelek - nagy eséllyel akár önmagad is át tudnád úgy szerkeszteni, hogy default beállításokkal mentsen és ne kérdezzen semmit.
amennyiben C, akkor már persze más a helyzet.. egyébként a gimp oldalon van scheme tutorial is ha jól emlékszem, ami direkt a pluginek/scriptekhez lett írva, esetleg azt is átnézhetnéd... persze kérdés mennyire fontos mindez és mennyire van időd rá.
sok sikert.

[quote:3a940237bc="j_szucs"]- a beállításoknál az ocr program útvonala megadható, de nem tudok az ocr program helyett egy wrapper scriptet megadni, mert az ilyen scriptet a kooka úgy látszik még csak el sem indítja. Pedig egy wrapper script nemcsak az ocr programot tudná a megfelelő paraméterekkel elindítani (ld. UTF-8 probléma), hanem egy füst alatt gondoskodhatna a felismert szöveg felolvasásáról is.

Ha írnál egy egyszerű progit /nem szkriptet, hanem mondjuk C progit/, azt elindítaná?

Vannak gyorsbillentyűk, de ebből a szempontból nem jelentenek semmit.

Ha pl. a már beszkennelt szöveget fel akarom ismerteni az ocr programmal, akkor ígyis-úgyis megjelenik az ocrad dialógus ablak, csupa olyan opcióval, amit egyszer már megadtam (hiányzik az "Ez az ablak ne jelenjen meg többé" jelölőnégyzet).

az nem lenne megoldás, hogy esetleg te átírod a scriptet?

Tegnap kookaztam, úgyhogy a gimp szkriptezésnek még nem tudtam utánanézni.
Viszont a nyakamat tenném rá, hogy nem a szkript a hibás a kérdések miatt, mert a mentéskor valszeg csak meghívja a gimp megfelelő funcióját. Ha így van, akkor lehet hogy nincs is megoldás.

Ha írnál egy egyszerű progit /nem szkriptet, hanem mondjuk C progit/, azt elindítaná?

Hát, ez az ami félek sosem fog kiderülni.
Annyira nem ismerem ugyanis a c nyelvet, hogy még a híres "Hello world" szöveget kiírató progit sem tudnám benne kapásból megírni.

Nem műxik a program, mert ugyanaz a helyzet vele mint a wrapper szkripttel: a kooka nem indítja el.

Közben viszont majdnem találtam egy áthidaló megoldást: mivel bármilyen, képernyőn megjelenő, kijelölhető szöveget fel tudok olvastatni, és tulajdonképpen a kooka által külön ablakban megnyitott, felismert szöveg is ilyen, ezért a felolvasás, ha nem is automatikusan, de legalábbis két kattintással megoldható.

Viszont gond van a karakterkódolással :-(. A következőket tapasztalom:

- a kooka a felismert szöveget egy egyszerű szövegszerkesztő ablakban nyitja meg, de abban szövegben az ékezetes karakterek helyén teljesen más karakter áll (ilyesmik, mint pl.: kis fekete négyzet, fekete körben fehér kérdőjel, stb.), az ékezetes karaktert megelőző karakter pedig úgyszint eltűnik. Az ocr program még biztosan teljesen korrekten ismeri fel a szöveget (ezt konzolból futtatva ellenőriztem), vagyis a gondot csak az eltérő karakterkódolás okozhatja
- ha a kooka fent említett szövegszerkeztőjébe ékezetes szöveget pötyögök, azok ott még korrekten jelennek meg, de ha kiollózom, és a vágólapon át beillesztem egy másik szövegszerkesztőbe, akkor az ékezetes karakterek helyén más karakterek jelennek meg.

Eleinte még azt hittem, hogy elég a felismert szöveget a kooka-ból a vágólapon kiollózni, és egy ISO 8859-2 > UTF-8 konverziót végezni rajta, de ez nem jött be: valamit javít a helyzeten, mert a felismert szövegből hiányzó (eredetileg ékezetes karakter előtt álló) karakterek ismét megjelennek, de maguknak az ékezetes karakterek nyoma sincs, teljesen más karakter áll a helyükön.
Ugyanez a helyzet ISO 8859-1 > UTF-8 és LATIN2 > UTF-8 konverziónál is.

Hogyan lehetne rájönni, hogy milyen karakterkonverziót kell elvégezni a kooka által megjelenített fals szövegen ahhoz, hogy visszakapjam a magyar ékezetes karaktereket?

[quote:2f858e44c7="j_szucs"]

Ha írnál egy egyszerű progit /nem szkriptet, hanem mondjuk C progit/, azt elindítaná?

Hát, ez az ami félek sosem fog kiderülni.
Annyira nem ismerem ugyanis a c nyelvet, hogy még a híres "Hello world" szöveget kiírató progit sem tudnám benne kapásból megírni.

Ha a szkriptet megírtad, akkor nem lehet már nehéz. Pl.:
[code:1:2f858e44c7]/*
* Fájl neve: wrapper.c
* Lefuttatja a CMND-ban definiált parancsot a program saját
* paramétereivel.
* Fordítás: gcc -Wall wrapper.c -o wrapper
* Futtatás: ./wrapper [paraméterek]
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define CMND "sh myScript.sh"

int main (int argc, char** argv)
{
char command [255];
int fi;

sprintf (command, CMND);

for (fi = 1; fi < argc; fi++)
{
strcat (command, " ");
strcat (command, argv [fi]);
}

system (command);

return 0;
}[/code:1:2f858e44c7]

Köszi, de nem teljesen világos nekem, hogy mit is csinál ez a program.

Jól sejtem, hogy ez amolyan "wrapper script wrapper program" lenne? Vagyis ezt a programot adhatom meg a kooka-nak mint ocr programot, de ez még csak a wrapper script-et futtatja majd a kooka-tól kapott parancssori argumentumokkal?

[quote:eeb0e92d47="j_szucs"]Köszi, de nem teljesen világos nekem, hogy mit is csinál ez a program.

Jól sejtem, hogy ez amolyan "wrapper script wrapper program" lenne? Vagyis ezt a programot adhatom meg a kooka-nak mint ocr programot, de ez még csak a wrapper script-et futtatja majd a kooka-tól kapott parancssori argumentumokkal?

Pontosan. Mivel én többet az egészről nem tudok ez tűnt a legegyszerűbbnek. 8) Az összes dolgod, hogy átírd a saját szkripted nevére a "myScript.sh"-t, majd leforgasd.

Létezik linuxon olyan képszerkesztő, amivel

A) a megnyitott képben egérrel tetszőleges képrészletet ki lehet jelölni, és

B) a kijelölést egyetlen gyorsbillentyű megnyomásával új fájlba lehet menteni?

Bónuszként esetleg a képet szintén egyetlen gyorsbillentyűvel tetszőleges mértékben el lehet forgatni?

A hangsúly mindenképpen a B) ponton van: a képszerkesztő a kijelölést mentő gyorsbillentyű megnyomása után NE KÉRDEZZEN SEMMIT a mentéskor; azaz a mentést teljesen automatikusan, előre beállított paraméterekkel, adott fájlnévre (mindig ugyanarra), az eredetivel azonos formátumban és azonos képjellemzőkkel végezze. Ez azért fontos, mert a programot csak magyar nyelven beszélő csökkent látó használná, aki a képernyőn megjelenő semmilyen üzenetet nem tudna kezelni.

Ha a képszerkesztő a fenti gyorsmentéssel egyidejűleg még egy külső shell szkriptet is el tudna indítani, az már csak hab lenne a tortán.

Van ilyen képszerkesztő Linuxra?

A gimp scriptezhető, így lényegében megoldható a problémád. Lehet, hogy már másvalaki megírta, de ha nem, akkor neked kell elkövetned.

Elsőre én is a gimpre gondoltam, és láttam, hogy alapból van is benne ilyen szkript, csak az a baj, hogy mentés közben három párbeszédablakon kell átbukdácsolni. Nekem megy a dolog, de egy csökkent látónak nem menne.

Megvan!!!

A ~/.kde/share/config/kookarc konfig fájl [ocrad] szekciójába kellett beírni az alábbi opciót:
extraArguments=--format=utf8

Ezután már korrekten jelenik meg az utf-8 kódolású SuSE-n a magyar nyelvű felismertetett szöveg, és korrekten fel is olvastatható.

Bosszantó, hogy se a fenti konfig fájl létezéséről, se a benne megadható opciókról nincs egyáltalán semmi említés a kooka dokumentációjában.
A konfigfájl létezésére, és a megadható "extraArguments" opciókra ezért szinte véletlenül, a kooka forráskódját elemezve sikerült rátalálni.

A papír alapú dokumentumok felolvastatása ezennel megoldva; most már csak az ehhez szükséges egérkattintások darabszámát (jelenleg 6) kellene elfogadhatóbb értékre (max. 3) csökkenteni egy pár dialógusablak kiirtásával a forrásból :-).

[quote:71ae88e68e="j_szucs"]Megvan!!!
A papír alapú dokumentumok felolvastatása ezennel megoldva; most már csak az ehhez szükséges egérkattintások darabszámát (jelenleg 6) kellene elfogadhatóbb értékre (max. 3) csökkenteni egy pár dialógusablak kiirtásával a forrásból :-).

Nincsenek esetleg gyorsbillentyűi az adott gomboknak? Azokat könnyen megtanulhatja a user és tippem szerint nem is változik a lenyomásuk sorrendje.

Misi