Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
36
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
37
www.lpmagazine.org
lin
ux
@
so
ftw
ar
e.
co
m
.p
l
Digitalizacja rysunków,
wykresów i map
Rozpowszechnianie grafik, map oraz rysunków technicznych w postaci elektronicznej staje się
coraz powszechniejszą praktyką. Drukowane wykresy lub mapy nie trafią zapewne do lamusa, ale
z pewnością stracą na znaczeniu. Poza tym, papierowe dokumenty i mapy mają jedną istotną wadę
– trudno poddać je powtórnej obróbce, a informacje na nich zapisane zgromadzić w bazach danych.
Paweł Wolniewicz
J
eśli zechcemy zdigitalizować jakiekolwiek dru-
kowane rysunki, to konieczne okaże się uży-
cie skanera, a następnie import grafiki do pro-
gramu takiego jak Inkscape oraz jej wektoryza-
cja. Po zakończeniu tego procesu otrzymamy plik, któ-
ry będziemy mogli poddawać wielokrotnej edycji. Mimo
to wykonanie pomiarów na grafice (mapie, rysunku tech-
nicznym), a także odczytanie odległości i kątów, sprawi
nam zapewne sporo problemów. Możemy jednak sięgnąć
po specjalistyczne narzędzie, które umożliwi wykonanie
niezbędnych pomiarów na zdigitalizowanym obrazie, a
następnie eksport wyników do baz danych, arkuszy kal-
kulacyjnych i innych programów. Tym narzędziem jest
Engauge Digitizer.
W jakich konkretnych sytuacjach może przydać się
wspomniane oprogramowanie? Zastosowań jest sporo
– część z nich została wymieniona na stronie domowej En-
gauge Digitizera. Po pierwsze, możemy dysponować wy-
kresami zapisanymi w formatach rastrowych lub wydruko-
wanych na papierze. Engauge Digitizer umożliwi nam di-
gitalizację znajdujących się na nich informacji. W efekcie
uzyskamy dane liczbowe, które pozwolą nam na odtworze-
nie wykresu w dowolnym arkuszu kalkulacyjnym, a także
na zmianę zawartych w nim danych.
Zastosowane przez nas oprogramowanie poradzi sobie
nie tylko z prostymi wykresami bądź histogramami, ale też
z bardziej skomplikowanymi rysunkami technicznymi. Zdi-
gitalizowane dane będziemy mogli zapisać w formacie CSV,
następnie odczytać za pomocą arkusza kalkulacyjnego, opro-
gramowania matematycznego lub statystycznego, a także za-
chować w bazie danych.
Innym ważnym polem, na którym Engauge Digitizer
świetnie się sprawdza, jest gromadzenie informacji pocho-
dzących z papierowych map. Dzisiaj dostępne są zarówno
komercyjne, cyfrowe mapy, jak i darmowe ich odpowiedni-
ki, takie jak dobrze znany serwis Google Maps oraz otwar-
ty projekt OpenStreetMap (http://www.openstreetmap.org/).
Mimo to często nie oferują one takiej dokładności, jak papie-
rowe mapy topograficzne. W efekcie digitalizacja może oka-
zać się bardzo przydatna, zwłaszcza jeśli jesteśmy zapalony-
mi turystami pieszymi, cyklistami lub spędzamy wolny czas
trenując biegi na orientację.
W tym artykule zapoznamy się z kilkoma najbar-
dziej ważnymi zastosowaniami programu Engauge Digi-
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
36
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
37
www.lpmagazine.org
tizer. Zaczniemy od digitalizowania map, a
następnie odczytamy dane zapisane na dru-
kowanych wykresach oraz rysunkach tech-
nicznych.
Instalacja Engauge Digitizera
Engauge Digitizer jest programem wieloplat-
formowym, dostępnym zarówno w postaci
kodu źródłowego, jak i binariów. W portalu
Sourceforge znaleźć możemy pakiety zawie-
rające najnowszą wersję aplikacji. Dostępne
są binaria zarówno dla Linuksa, jak i Win-
dows, a także kod źródłowy. Instalacja bina-
riów nie sprawia żadnego problemu. Wystar-
czy rozpakować pobrane archiwum, wejść
do podkatalogu engauge i wydać polecenie
./engauge. Posiadanie praw administratora
nie jest konieczne.
Program korzysta z bibliotek Qt 3. Obec-
nie deweloperzy aplikacji pracują nad przepro-
gramowaniem jej interfejsu tak, by był on opar-
ty na Qt 4.x. Jeśli zdecydujemy się na ręczną
kompilację programu, to wymagane będą nie
tylko biblioteki Qt 3, ale także FFTW w wer-
sji co najmniej 3.1.2. Potrzebne pakiety znaleźć
można w większości dystrybucji. Kompilacja
wymaga wydania dwóch poleceń:
qmake di-
gitizer.pro
, a następnie
make
. W efekcie po-
winniśmy otrzymać gotowe do uruchomienia
binaria. Program nie posiada żadnych dodatko-
wych bibliotek, które powinny zostać umiesz-
czone w ściśle określonym miejscu w struktu-
rze plików. Wystarczy uruchomić skompilowa-
ne binaria poleceniem
./engauge
.
Razem z Engauge Digitizerem rozpo-
wszechniane są przykładowe grafiki oraz do-
kumentacja w formacie HTML. Pliki JPG /
PNG / BMP zawierające skany testowych do-
kumentów (wykresów) znajdują się w pod-
katalogu samples. Dokumentację znajdzie-
my natomiast w folderze usermanual. Nale-
ży otworzyć plik index.html, z poziomu któ-
rego uzyskujemy dostęp do kilku przykła-
dów zastosowania programu, a także odpo-
wiedzi na kilkanaście najważniejszych py-
tań związanych z korzystaniem z aplikacji.
Dokumentacja dostępna jest jedynie w języ-
ku angielskim.
Warto obejrzeć przykładowe pliki rozpo-
wszechniane razem z Engauge Digitizerem.
Dzięki temu zorientujemy się, jakiego rodza-
ju materiały (i jakiej jakości) można przetwa-
rzać w tym programie. Pracę warto jednak
rozpocząć już na własnych plikach. W tym ce-
lu konieczny będzie skaner, który wykorzysta-
my do digitalizacji wykresów, rysunków tech-
nicznych i map. Parametry techniczne takie-
go urządzenia nie muszą być wyśrubowane.
W wielu przypadkach wystarczy zastosowa-
nie rozdzielczości rzędu 300 dpi. Warto sko-
rygować ustawienia kontraktu oraz jasności,
ale nie do przesady. Engauge Digitizer radzi
sobie z plikami zawierającymi tło, więc jego
usuwanie za pomocą GIMP-a nie jest koniecz-
ne. Wyjściowy plik warto zapisać w formacie
PNG, gdyż dzięki temu zaoszczędzimy nieco
miejsca na dysku. Program rozpoznaje rów-
nież dokumenty BMP, GIF oraz JPG, a tak-
że PNM i XPM.
Podczas skanowania starajmy się korzy-
stać z trybu kolorowego, nie redukując obra-
zu do odcieni szarości. W trakcie pracy z mapa-
mi jest to oczywiste, jednak również przetwa-
rzając rysunki techniczne i monochromatycz-
ne wykresy nie trzeba konieczne dostosowy-
wać do nich ustawień posiadanego przez nas
urządzenia.
W pracy z Engauge Digitizerem dobrze
sprawdzają się tanie skanery biurkowe A4. Au-
tor korzysta z modelu Epson Perfection V200
Photo, którego producent dostarcza sterowniki
dla Linuksa (pakiet Iscan). Skaner ten digitali-
zuje również przezrocza.
Zapisane przez nas pliki graficzne otwie-
ramy w programie Engauge Digitizer, wyda-
jąc w tym celu polecenie Import z menu Fi-
le lub klikając ikonę Import File (pierwsza
z lewej strony na pasku w górnej części in-
terfejsu). Zeskanowany obraz pojawia się w
oknie Engauge Digitizera. Zauważmy jed-
nak, że nie jest to oryginalny plik graficz-
ny. Program domyślnie stara się bowiem bi-
naryzować obraz, czyli oddzielić jego treść
od tła. Istotne informacje zaznaczone są ko-
lorem czarnym, szum – białym. Jeżeli wyniki
pracy Engauge Digitizera nie są naszym zda-
niem zadowalające, to możemy przywrócić
oryginalny obraz poleceniem Original Ima-
ge z menu View.
Program z reguły radzi sobie dobrze z wy-
kresami, poprawnie odróżniając treść od tła.
Przetworzenie grafiki może pogorszyć nieco
jakość tekstu (podpisów, cyfr na osiach współ-
rzędnych), jednak sporo zależy też od oryginal-
nego skanu oraz stosowanych czcionek. Trochę
trudniejsza jest praca z mapami. Jeśli przetwo-
rzony obraz jest nieczytelny, to powinniśmy za-
znaczyć opcję View –> Original Image. Nie
utrudni nam to dalszej pracy ze skanem.
Digitalizacja map
Naszą przygodę z Engauge Digitizerem za-
czniemy właśnie od analizowania map i pla-
nów. Ich papierowe wersje wciąż są nierzadko
o wiele wyższej jakości niż elektroniczne od-
powiedniki dostarczane razem z urządzeniami
GPS i dostępne w Internecie. Dlatego też prze-
niesienie do komputera przynajmniej części z
naszej analogowej kolekcji map może się oka-
zać konieczne.
Szczególnie przydatne są mapy topogra-
ficzne w dużej skali. Umożliwiają one doko-
nanie bardzo precyzyjnych pomiarów odle-
głości i powierzchni. W pracy z papierowy-
mi mapami niezbędna okaże się dobra linij-
ka i kalkulator, a i tak nie uda nam się uzy-
skać dokładnych rezultatów, zwłaszcza w
przypadku analizy linii łamanych oraz krzy-
wych.
Zeskanowaną mapę lub plan zaimpor-
tujmy zatem do programu Engauge Digiti-
zer. W razie potrzeby włączmy opcję Origi-
nal Image. Pracę z mapą powinniśmy rozpo-
Rysunek 1.
Engauge Digitizer analizuje ładowane
grafiki, odróżniając tło od właściwych danych
Rysunek 2.
Fragment mapy z rozpoznanymi przez
program zarysami poziomic
Rysunek 3.
Okno Discretize pozwala na filtrowanie
obrazu i usuwanie z niego niepotrzebnych informacji
38
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
39
www.lpmagazine.org
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
cząć od ustalenia jej skali. Dzięki temu bę-
dziemy mogli precyzyjnie wykonać wszyst-
kie potrzebne pomiary. W celu ustalenia ska-
li kliknijmy ikonę Scale Bar. Następnie za-
znaczmy na mapie dwa punkty znajdujące
się w dokładnie znanej nam odległości w li-
nii prostej. W tym celu warto podczas ska-
nowania mapy objąć także podziałkę milime-
trową wydrukowaną na niej razem z legendą.
W przypadku planów geodezyjnych będzie-
my również prawdopodobnie znali odległo-
ści pomiędzy wybranymi punktami pomiaro-
wymi (tak zwanymi reperami). Takie infor-
macje też okażą się bardzo przydatne. Klik-
nijmy myszą jeden z punktów, a następnie
przeciągnijmy kursor, cały czas przytrzymu-
jąc wciśnięty prawy przycisk, do końca od-
cinka o ustalonej odległości. Na ekranie poja-
wi się niewielkie okienko Scale Bar, pozwa-
lające nam na wprowadzenie długości testo-
wej linii. Wpiszmy właściwą wartość. Jed-
nostki nie są istotne, możliwe jest stosowanie
metrów, kilometrów, a nawet mil, w zależno-
ści od potrzeb.
Teraz możemy rozpocząć pomiary. Wy-
dajmy polecenie Digitize –> Measure Point.
Następnie zaznaczmy łamaną, której dłu-
gość zamierzamy pomierzyć. Może to być
trasa, którą przebiegliśmy na treningu, prze-
mierzyliśmy na spacerze bądź przejechali-
śmy na rowerze, a także obwód terenu, któ-
rego powierzchnię usiłujemy ustalić. Zasto-
sowań Engauge Digitizera jest sporo, wie-
le zależy od indywidualnych potrzeb użyt-
kownika.
Trasę wprowadzamy klikając kolejne, w
miarę blisko siebie położone, punkty. Pro-
gram połączy je automatycznie, wykonując
przy tym pomiary odległości. Ostatni punkt
może pokrywać się z pierwszym – obliczo-
ne zostanie wówczas także pole zamknię-
te oznaczoną ścieżką. Pomiary wykonane
przez Engauge znaleźć można w okienku
Measure Geometry, otwieranym po wydaniu
polecenia View –> Measure Geometry Info.
Ujrzymy w nim prosty arkusz kalkulacyjny.
W wierszach umieszczone są informacje do-
tyczące kolejnych punktów pomiarowych
– ich współrzędne oraz odległości pomię-
dzy nimi. Pierwsze dwie kolumny określają
lokalizację zaznaczonych miejsc w układzie
kartezjańskim (osie X i Y). Kolejna zawiera
numery punktów. Następne cztery kolumny
określają odległości pomiędzy wskazanymi
miejscami na krzywej, pomierzone w usta-
lonych przez nas jednostkach. Dodatkowo
wyświetlane są również wartości procento-
we. Wskazują nam one, jaki fragment całej
trasy stanowi każdy z pomierzonych odcin-
ków. Pomiary wykonywane są w dwóch kie-
runkach, stąd też dane liczbowe zajmują aż
cztery kolumny.
Ostatnia informacja zawarta w arkuszu do-
tyczy kątów (azymutów) pomiędzy kolejnymi
odcinkami. Ponadto w nagłówku tabeli zna-
leźć można powierzchnię zamkniętą wyzna-
czoną przez nas krzywą. Wszystkie pomiary
zostały automatycznie przeliczone na ustalone
przez nas jednostki. Jeśli wcześniej nie zdefi-
niowaliśmy skali, to wyniki podane zostaną w
pikselach.
Eksport danych
do arkusza kalkulacyjnego
Dane znajdujące się w oknie Measure Geo-
metry można zachować, zaznaczając je my-
szą i wciskając kombinację klawiszy [Ctr-
l]+[C]. Następnie, jeśli korzystamy z pa-
kietu biurowego OpenOffice.org, to utwórz-
my w nim pusty arkusz kalkulacyjny i naci-
śnijmy [Ctrl]+[V]. W okienku Import tekstu
uaktywnijmy Opcje separatora jako Roz-
dzielony, a następnie wskażmy kratkę Ta-
bulator. U dołu okienka cały czas widocz-
ny jest podgląd importowanych danych. Je-
żeli efekt nas zadowala, kliknijmy OK. Po-
miary wykonane w programie Engauge Di-
gitizer pojawią się w arkuszu kalkulacyjnym
OpenOffice.org.
Warto jeszcze zachować mapę wraz z na-
niesionymi trajektoriami i punktami. W tym
celu kliknijmy ikonę Save. Program umożli-
wi nam zachowanie wszystkich danych w jego
własnym formacie *.dig.
W niektórych sytuacjach samo doko-
nanie pomiarów może nam nie wystarczać.
Czasami możemy również zechcieć zdigitali-
zować mapę do postaci wektorowej, odfiltro-
wując część informacji i pozostawiając tyl-
Rysunek 5.
Program rozpoznał krzywą znajdującą się na wykresie i odczytał wartości kilkudziesięciu punktów
Rysunek 4.
Wykorzystany wykres z danymi z serwisu Google Trends. Dzięki programowi Engauge Digitizer
możliwe jest odczytanie danych liczbowych i zapisanie ich w arkuszu kalkulacyjnym lub w bazie danych
38
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
39
www.lpmagazine.org
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
ko najistotniejsze dane (poziomice, sieć dro-
gową i kolejową, zabudowania i miejscowo-
ści). Tak przetworzona grafika może znaleźć
zastosowanie w wielu sytuacjach. Jeśli chce-
my nanieść na mapę własne dane, wykorzy-
stać ją do gromadzenia informacji o przeby-
tych przez nas trasach lub umieścić na niej
rezultaty dowolnych badań, to Engauge Di-
gitizer posiada w tym celu kilka dodatko-
wych funkcji.
Po zaimportowaniu mapy prawdopo-
dobnie zdecydowaliśmy się włączyć wi-
dok oryginalnego obrazu (View –> Original
Image). Algorytmy, które Engauge Digitizer
stosuje automatycznie w celu odfiltrowania
z mapy istotnych informacji nie działają bo-
wiem z reguły w sposób optymalny. Nic jed-
nak straconego. Program pozwala nam bo-
wiem na ręczne sterowanie procesem bina-
ryzacji obrazu, czyli przekształceniem do
postaci, w której zbędne dane zostaną zre-
dukowane do białego tła, a ważne informa-
cje – zapisane w postaci czarnych punktów,
linii i powierzchni, rozpoznawanych jako
osobne ścieżki.
W tym celu wydajmy polecenie Discre-
tize z menu Settings. Na ekranie pojawi się
okienko zawierające w górnej części histo-
gram obrazu oraz listę możliwych do wy-
korzystania algorytmów, a u dołu – podgląd
mapy. Początkowo widoczne są domyśl-
ne ustawienia Engauge Digitizera, wyma-
gające zapewne skorygowania. Do wybo-
ru mamy pięć metod (ramka Discretize me-
thod selection). Warto wypróbować każdą z
nich, za każdym razem manipulując dwoma
ogranicznikami na histogramie, separujący-
mi obraz od jego tła. Łudząco przypomina
to funkcję progowania, dostępną między in-
nymi w GIMP-ie.
Po uzyskaniu zadowalających nas rezulta-
tów możemy kliknąć OK. Mapa zostanie prze-
tworzona z uwzględnieniem wprowadzonych
przez nas zmian. W efekcie Engauge Digiti-
zer zacznie widzieć ścieżki na mapie, wyzna-
czone przez drogi, kolej, linie brzegowe jezior
bądź poziomice. Dzięki temu możliwe będzie
ich pełne przetworzenie do postaci cyfrowej
(numerycznej).
Po zaakceptowaniu zmian powrócimy
do głównego okna programu. Zwróćmy uwa-
gę na linie widoczne na przetworzonej mapie.
Część z nich została prawdopodobnie ozna-
czona kolorem zielonym. Oznacza to, że En-
gauge Digitizer rozpoznaje te proste, krzy-
we bądź łamane, i automatycznie przekształ-
ca je na ścieżki. Teraz wystarczy tylko klik-
nąć jedną z nich myszą (przy uaktywnionym
narzędziu Digitize –> Segment Fill), a aplika-
cja zaznaczy punkty umieszczone na ścieżce
i automatycznie pomierzy odległości pomię-
dzy nimi.
Podczas pracy z mapami problemy mo-
że sprawić zaznaczenie kilku ścieżek. En-
gauge Digitizer automatycznie doda kolej-
ne punkty do poprzedniej ścieżki, tworząc
połączenia pomiędzy najbliższymi z ozna-
czonych miejsc. Może to spowodować wy-
mieszanie się danych z różnych ścieżek.
Ta funkcja, wydająca się tutaj utrudnie-
niem, świetnie sprawdza się jednak pod-
czas odczytywania danych ze zdigitali-
zowanych wykresów oraz diagramów. W
trakcie przetwarzania map również może-
my sobie poradzić z tym problemem. Na-
leży przed zaznaczeniem kolejnej ze ście-
żek utworzyć nową krzywą. W tym ce-
lu otwórzmy okienko Settings –> Curves.
Kliknijmy w nim przycisk New. Utworzona
zostanie nowa łamana. Zatwierdźmy zmia-
ny klawiszem OK, a następnie na rozwija-
nej liście Curves widocznej w górnej czę-
ści głównego okna Engauge Digitizera, tuż
obok paska ikon, wybierzmy nazwę krzy-
wej. Od tego momentu program nie bę-
dzie łączył punktów z wcześniej wskaza-
nymi ścieżkami.
W podobny sposób możemy tworzyć
na pojedynczej mapie wiele ścieżek pomia-
rowych, wykorzystując w tym celu znane
nam już narzędzie Measure Point. Po prostu
przejdźmy do okienka Measures (dostępne z
poziomu menu Settings), a następnie klik-
nijmy przycisk New i zaakceptujmy zmiany
(OK). Nowa ścieżka pojawi się w głównym
oknie programu, na rozwijanej liście.
Jak mogliśmy zaobserwować do tej po-
ry, Engauge Digitizer stosuje dwie katego-
rie krzywych służących do wykonywania
pomiarów – Curves oraz Measures. Dru-
gi z wymienionych typów lepiej spraw-
dza się podczas przetwarzania map. Pro-
gram nie łączy w tym przypadku najbliżej
leżących punktów, pozwalając użytkowni-
kowi na całkiem samodzielne wprowadza-
nie trajektorii. W przypadku narzędzia Cu-
rves, połączenia powstają automatycznie.
Przydaje się to zwłaszcza wtedy, gdy pra-
cujemy z wykresami i diagramami, a także
wówczas, gdy na mapie zostały odczytane
wyraźne linie (drogi, rzeki, koleje, pozio-
mice), zaznaczone w postaci zielonych li-
nii, możliwe do łatwego przekształcenia do
postaci zestawu liczb.
Digitalizacja
wykresów i diagramów
Do tej pory pracowaliśmy z mapami, korzy-
stając przy tym głównie z typu Measures. Te-
raz natomiast przyda się nam bardziej na-
rzędzie Curves – zaczniemy bowiem prze-
twarzać wykresy i rysunki techniczne. Tutaj
otwiera się przed nami bardzo szeroki zakres
możliwych zastosowań Engauge Digitizera.
Papierowe dokumenty mogą po zeskanowa-
niu i przetworzeniu za pomocą opisywane-
go programu trafić do arkusza kalkulacyjne-
go, bazy danych, a nawet do jednego z pakie-
tów matematycznych.
Zaczniemy od pozyskania informacji z
wykresów, które od początku dostępne są w
wersji cyfrowej. Są to między innymi statysty-
ki oglądalności stron internetowych, rankin-
gi, a także diagramy publikowane w plikach
PDF. My wykorzystamy dane pobrane z ser-
wisu Google Trends (http://www.google.com/
trends). Zawiera on informacje o częstości
wpisywania przez użytkowników fraz w wy-
szukiwarce, a także o liczbie nowych artyku-
łów na zadany temat, pojawiających się w In-
ternecie. Pozwala to na śledzenie zmian zain-
teresowań internautów w czasie, na podstawie
wyrażeń kluczowych wpisywanych w Google.
Wyniki uzyskiwane tym narzędziem są bardzo
ciekawe, w niektórych sytuacjach mogą dopo-
móc w rozpoznaniu tendencji rynkowych oraz
preferencji gości wyszukiwarki.
Dane udostępniane przez Google Trends
widoczne są w postaci pliku graficznego za-
Rysunek 6.
Wykres Google Trends zrekonstruowany w arkuszu kalkulacyjnym OpenOffice.org
40
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
41
www.lpmagazine.org
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
wierającego wykresy. Można go zapisać na
dysku, jednak późniejsze wykorzystanie i
przetworzenie tych danych wcale nie staje się
przez to łatwiejsze. Sięgniemy zatem po En-
gauge Digitizera, by zamienić wykresy na opi-
sujące je zestawy cyfr, które następnie można
wprowadzić do bazy danych lub zaimporto-
wać do arkusza kalkulacyjnego.
Pierwszym krokiem powinno być zapisa-
nie pliku graficznego na dysku. Najlepszym
formatem będzie zapewne PNG. Pliki TIF nie
są natomiast obsługiwane przez Engauge Di-
gitizera. Zapisaną grafikę otwieramy klika-
jąc ikonę Import File. Jeśli jakość binaryza-
cji pozostawia wiele do życzenia, to otwórz-
my okno Discretize z menu Settings. Na histo-
gramie zmieńmy położenie obu znaczników,
tak aby na wynikowym obrazie pojawiły się te
elementy, które są nam potrzebne. Zauważmy,
że umiejętnie manipulując strzałkami można
w prosty sposób usunąć wszystkie zbędne da-
ne, na przykład widoczną w tle siatkę. Najbar-
dziej odpowiadające nam ustawienia zatwier-
dzamy przyciskiem OK i wracamy do główne-
go okna programu.
Teraz powinniśmy wskazać osie wykre-
su oraz przypisać do nich odpowiednie warto-
ści. W tym celu kliknijmy ikonę Axis Point, a
następnie trzy punkty – początkowy (0,0) oraz
końcowy dla osi X i Y. Do każdego z nich po-
winniśmy przypisać odpowiednie wartości, co
w naszym przypadku jest trudne, gdyż Google
Trends nie czyni tego w sposób właściwy. W
efekcie możemy opatrzyć oś Y dowolną warto-
ścią maksymalną (np. 100), a oś X – liczbą lat
przedstawionych na diagramie (w analizowa-
nym przypadku 5).
Jeśli binaryzacja (okienko Discretize) zo-
stała przeprowadzona prawidłowo, to krzywe
na wykresie powinny być oznaczone kolorem
zielonym. W tym momencie wystarczy już tyl-
ko kliknąć jedną z nich kursorem, a następnie
otworzyć okienko Curve Geometry Info, do-
stępne z poziomu menu View. Ujrzymy listę
pomiarów wykonanych przez Engauge Digiti-
zera, analogiczną jak w przypadku tabeli Me-
asure Geometry Info. Tym razem jednak naj-
bardziej interesują nas nie odległości, ale osie
układu kartezjańskiego (X i Y). Dzięki nim mo-
żemy bowiem ustalić precyzyjną pozycję każ-
dego z punktów na wykresie.
Teraz przenieśmy dane do arkusza kal-
kulacyjnego i odtwórzmy w nim wykres wi-
doczny w pliku graficznym. Zaznaczmy ko-
lumny X oraz Y w oknie Curve Geometry In-
fo. Następnie skopiujmy je kombinacją klawi-
szy [Ctrl]+[C] i wklejmy do arkusza pakietu
biurowego OpenOffice.org. Oczywiście, mo-
żemy też wykorzystać jakąkolwiek konku-
rencyjną aplikację. Wklejmy dane tak samo
jak podczas pracy z mapą. Być może koniecz-
na będzie zamian kropek na przecinki w po-
szczególnych wartościach. Następnie utwórz-
my wykres, dla którego zakresem będą impor-
towane dane. Po chwili bezpośrednio w arku-
szu pojawi się krzywa, którą obserwowaliśmy
wcześniej na obrazie pobranym z serwisu Go-
ogle Trends. Ale tym razem możemy edyto-
wać wszystkie informacje, łączyć wykresy
dla wielu wyrażeń kluczowych i porównywać
je, a także przeprowadzać analizy statystycz-
ne. W przypadku bitmapowej grafiki było to
oczywiście bardzo utrudnione.
Engauge Digitizer umożliwia również eks-
port odczytanych informacji do pliku CSV.
Aby skorzystać z tej funkcji, wydajmy polece-
nie Export z menu File. Plik CSV można po-
tem otworzyć w arkuszu kalkulacyjnym lub za-
importować do bazy danych bądź pakietu sta-
tystycznego, na przykład środowiska R. Do-
datkowo możliwa jest zmiana parametrów ge-
nerowanych tabel, za pomocą okienka Export
Setup wywoływanego komendą Settings –>
Export Setup.
W analizowanym przykładzie Engauge Di-
gitizer samodzielnie rozpoznał cały wykres ja-
ko pojedynczą ścieżkę, co umożliwiło dokona-
nie wszystkich potrzebnych pomiarów kilko-
ma kliknięciami myszy. Ale w przypadku gra-
fik gorszej jakości program może sobie nie po-
radzić. W takiej sytuacji pozostaje nam jeszcze
funkcja ręcznego zaznaczenia ścieżki. W tym
celu kliknijmy ikonę Curve Point, a następnie
wskażmy kolejne punkty na analizowanej krzy-
wej. Dalsze postępowanie jest identyczne, jak
podczas automatycznego rozpoznawania ście-
żek. Uzyskane dane możemy więc skopiować
i wkleić do arkusza kalkulacyjnego albo zapi-
sać w pliku.
Ręczne zaznaczanie kolejnych punktów na
wykresie okazuje się również konieczne, gdy
na wykresie znajduje się wiele przecinających
się krzywych. Jednak i w tej sytuacji istnieją
bardziej eleganckie rozwiązania. Spróbujmy
zmienić ustawienia w okienku Discretize (ram-
ka Discretize method selection). Poszczególne
krzywe z pewnością różnią się odcieniem, co
można wykorzystać w celu wyeliminowania z
obrazu wszystkich danych, które nie interesu-
ją nas w danej chwili. Jeśli chcemy zdigitali-
zować większą liczbę wykresów, to warto kil-
kakrotnie zmienić ustawienia w oknie Discre-
tize, za każdym razem uwypuklając inny ele-
ment wykresu.
W naszej pracy przyjdzie nam zapewne
zetknąć się z grafiką, na której dane nie będą
przedstawione w postaci krzywych. Na szczę-
ście Engauge Digitizer potrafi sobie świetnie
poradzić także w przypadku wykresów punkto-
wych. Oferuje on dodatkowe mechanizmy po-
zwalające na odczytywanie danych z takich ob-
razów. Pracę rozpoczynamy w znany nam już
sposób, importując plik w jednym z obsługiwa-
nych formatów i zaznaczając trzy punkty defi-
niujące osie (za pomocą narzędzia Axis Point).
Następnie sięgnijmy do okienka Discretize, fil-
trując za jego pomocą obraz w taki sposób, by
pozostały nam nim tylko potrzebne nam punk-
ty. Może to wydać się trudne, jednak pamiętaj-
my, że każdy wykres musi być czytelny, a po-
szczególne kategorie danych powinny się zna-
cząco różnić. Ta zasada jest powszechnie sto-
• Engauge Digitizer – http://digitizer.sou
rceforge.net/;
• Engauge Digitizer w Sourceforge
– http://sourceforge.net/
project/showfiles.php?group_
id=67696&package_id=130007;
• Inkscape – http://www.inkscape.org/.
W Sieci
Rysunek 7.
Digitalizacja wykresu punktowego za pomocą narzędzia Point Match
40
luty 2009
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
41
www.lpmagazine.org
Rozwiązania
Ze skanu do bazy danych – digitalizacja rysunków, wykresów i map
sowana, co ułatwi nam takie skonfigurowanie
filtra binaryzującego obraz, by usunięte zostały
wszystkie niepotrzebne elementy.
Kolejnym krokiem powinno być skorzy-
stanie z narzędzia Point Match, dostępnego
w postaci ikony w głównym oknie programu.
Kliknijmy na obrazie jeden z punktów, który
naszym zdaniem najlepiej reprezentuje inte-
resujące nas dane. Oznacza to, że w praktyce
na zbinaryzowanym wykresie mogą znajdo-
wać się także punkty, których nie zamierza-
my digitalizować. Jeśli różnią się one choć
trochę od potrzebnych nam danych, to dalsza
praca nie zostanie zakłócona.
Od tego momentu Engauge Digitizer bę-
dzie starał się zautomatyzować proces odzy-
skiwania punktów z wykresu. Miejsca zapro-
ponowane przez program są kolejno oznacza-
ne za pomocą niebieskiego kwadratu. Aby za-
akceptować punkt, należy nacisnąć na klawia-
turze strzałkę w prawo. Aby usunąć – spację.
Zaakceptowane punkty oznaczane są kolo-
rem zielonym, odrzucone – czerwonym. W
ten sposób przemierzymy cały wykres, aż
do momentu, w którym wszystkie interesują-
ce nas miejsca zostaną oznaczone. Nie przej-
mujmy się, jeśli aplikacja ominie początko-
wo kilka ważnych punktów. Engauge Digiti-
zer powróci do nich później, gdy już zapro-
ponuje nam wszystkie miejsca najbardziej po-
dobne do zaznaczonego przez nas na samym
początku. Gdy skompletujemy pomiary, za-
kończmy je klikając ikonę Select. Pojawi się
okienko informujące nas o liczbie zaakcepto-
wanych punktów. W tym momencie trzeba bę-
dzie również podjąć decyzję dotyczącą sposo-
bu zachowania danych – w postaci typu Curve
lub Measure. W większości przypadków na-
leży kliknąć przycisk Curve. Jedyny wyjątek
stanowi sytuacja, w której Engauge Digitizer
zasugerował nam wszystkie punkty dokład-
nie w tej kolejności, w jakiej znajdują się ona
wykresie. To jednak zdarza się bardzo rzadko.
Po utworzeniu krzywej możemy ją zacho-
wać w taki sam sposób, jak podczas przetwa-
rzania wykresów innego typu, czyli za pomo-
cą okienka View –> Curve Geometry Info lub
polecenia File –> Export. Dodatkowo dostęp-
na jest także możliwość ręcznego przetwarza-
nia wykresów punktowych. Tak jak w przypad-
ku diagramów liniowych oraz map, polega ona
na wykorzystaniu narzędzia Curve Point. W ta-
kiej sytuacji konieczne będzie samodzielne za-
znaczenie wszystkich potrzebnych punktów w
dowolnej kolejności.
Eksport do bazy danych MySQL
Engauge Digitizer pozwolił nam na prze-
tworzenie i pełną digitalizację zarówno
map, jak i rysunków oraz diagramów li-
niowych, a także wykresów punktowych.
Wszystkie zgromadzone dane zapisaliśmy
w zbiorze CSV, a następnie zaimportowali-
śmy do arkusza kalkulacyjnego. Pliki wyge-
nerowane przez Engauge Digitizera można
jednak w bardzo prosty sposób przesłać do
bazy danych, między innymi MySQL. Wy-
maga to utworzenia osobnej tabeli o odpo-
wiedniej strukturze. W przypadku krzywej
konieczne będzie zdefiniowanie dwóch pól
numerycznych (wartości X oraz Y). Przy-
kładowe polecenie może wyglądać nastę-
pująco:
CREATE TABLE curve (osx smal-
lint(5) NOT NULL, osy smallint(5) NOT
NULL)
. Kolejnym krokiem powinno być od-
powiednie przygotowanie pliku CSV. Do-
myślnie zawiera on nagłówek, który nale-
ży usunąć. Możemy tego dokonać w dowol-
nym edytorze tekstu. Lepszym rozwiąza-
niem jest jednak zmiana ustawień Engauge
Digitizera. Otwórzmy w programie okien-
ko Export Setting, zaznaczając w ramce He-
ader opcję None.
Teraz możemy już wysłać zapisane dane
do bazy MySQL. Wydajmy polecenie
LOAD
DATA INFILE 'plik.csv' INTO TABLE cu-
rve FIELDS TERMINATED BY ',' ENCLOSED
BY '' LINES TERMINATED BY '\n'
. Informa-
cje o krzywej zostaną skopiowane do bazy. My-
SQL może zażądać wykonania komendy z kon-
ta administratora.
Niestety, zastosowana w tym przykła-
dzie metoda przechowywania danych nie jest
zbyt wydajna. Każda struktura wymaga bo-
wiem tworzenia osobnej tabeli. Możemy te-
mu zaradzić wprowadzając do pliku CSV
pole określające numer krzywej. To pozwo-
li nam na kopiowanie wszystkich danych do
pojedynczej tabeli. Wymagana jest jednak in-
gerencja w plik zapisywany przez Engauge
Digitizera, co zmusza nas do wykonania do-
datkowej pracy. W takiej sytuacji warto roz-
ważyć ręczne kopiowanie informacji z okien-
ka Curve Geometry Info do arkusza kalkula-
cyjnego, stworzenie tam dodatkowej zmien-
nej, a następnie zapis pliku CSV i wydanie
polecenia
SQL LOAD DATA
. Przy okazji moż-
na też utworzyć osobną tabelę zawierają-
cą tekstowe identyfikatory poszczególnych
krzywych. Ułatwi to nam utrzymanie porząd-
ku w danych, jeśli zdecydujemy się na zdigi-
talizowanie większej liczby rysunków, map i
wykresów.
Z pomocą przychodzi Inkscape
Produktem ubocznym – oprócz danych nume-
rycznych – są zbinaryzowane obrazy map i wy-
kresów. Mapy możemy wykorzystać do innych
celów, wstawiając je chociażby do grafik wek-
torowych. To pozwoli nam na umieszczanie na
nich dodatkowych elementów, nieobecnych
w pierwotnych wersjach. W tym celu można
oczywiście wykonać zrzutkę ekranu przedsta-
wiającą okno Engauge Digitizera oraz zbina-
ryzowaną mapę. Lepiej jednak sięgnąć w tym
celu po inne narzędzia, w tym popularny pro-
gram Inkscape.
Inkscape zapisuje wektorowe pliki SVG,
jednak pozwala także na import grafiki ra-
strowej w formatach BMP, GIF, JPG, PNG,
TIF oraz wielu innych. Dokonujemy tego po-
leceniem Importuj z menu Plik, ładując ze-
skanowaną przez nas uprzednio mapę. Na-
stępnie należy wydać komendę Ścieżka
–> Wektoryzuj bitmapę. Trafimy wówczas do
okienka wtyczki Potrace. Manipulując odpo-
wiednio jednym z parametrów (najlepiej za-
stosować domyślny, czyli Jasność) i klikając
przycisk Podgląd należy doprowadzić do ta-
kiej sytuacji, w której wszystkie interesujące
nas elementy staną się widoczne na wyjścio-
wym obrazie. Po zatwierdzeniu zmian usuń-
my oryginalną bitmapę. Od tego momentu
możemy już edytować mapę tak, jak zwy-
kłe ścieżki.
Podsumowanie
Rozwiązanie opisane w tym artykule, pole-
gające na wykorzystaniu programu Engauge
Digitizer, może sprawdzić się w wielu sytu-
acjach, w których konieczne okazuje się sko-
rzystanie z danych zachowanych w postaci
wizualizacji, wykresów bądź rysunków. Gra-
fika ułatwia dostrzeżenie trendów i porówna-
nie zmiennych bądź obiektów, ale w trakcie
przeszukiwania informacji, analizy metoda-
mi statystycznymi, a także w celu ich gro-
madzenia, lepiej sprawdzają się dane nume-
ryczne. Engauge Digitizer pozwala na prze-
tworzenie plików graficznych na liczby, a na-
stępnie na ich zapisanie w plikach CSV. Te z
kolei mogą być edytowane w dowolnych ar-
kuszach kalkulacyjnych, przesłanie do opro-
gramowania statystyczno-matematycznego,
systemów informacji geograficznej (GIS)
bądź składowane w postaci tabel w bazach
danych.
Autor korzysta z Linuksa od dziesięciu lat,
zajmuje się wdrażaniem oprogramowanie
open source. Adres kontaktowy: pawel-
w@open-enterprise.net.
O autorze