Dilbert iskalnik

Rad čitam Dilbert stripe, ker tu pa tam zadanejo žebljico na glavico. Nekaj časa sem si ta boljše shranjeval, našel pa nikoli točno tistega, ki bi ilustriral kakšno še posebej absurdno situacijo. V takih trenutkih sem si želel storitve, v kateri bi lahko brskal po arhivu in iskal stripe po tekstu in junakih.

Ko sem pred časom preverjal, se tega še ni dalo, zato sem se napravil zadevo narediti sam. Danes obstajata že 2 podobna sajta (pa jih žal ne znam uporabljat — mogoče sta namenoma prekomplicirana, da preveč očitno ne kršita pravic), spodaj pa opisujem svoj poskus, ki sem se ga lotil že dolgo nazaj.

Izhajal sem iz arhiva sličic, ki ga nekdo pridno fila. K sebi sem zložil vse slike in se namenil na njih narediti OCR. To je dokaj težko, ker je resolucija slaba, font pa majhen in na roko napisane sorte. Sprobal sem cel kup komercialnih in nekomercialnih OCR-ov (tudi tesseract, ki se je obnesel porazno). Za silo sprejemljiive rezultate sem dobil z Microsoft Office Document imaging OCR, ki je del Offica, in se ga da kontrolirati tudi softversko. Na hitro sem zložil skupaj par vrstic VB6 kode in zakrožil po slikah.

Private Sub Command1_Click()
 
  Dim miDoc As MODI.Document
  Dim File As String
  
  sPath = "f:dilbert"
  File = Dir$(sPath & "*.jpg")
  Do While Len(File)
      Label1.Caption = "Processing " & File
      DoEvents
      Set miDoc = New MODI.Document
      miDoc.Create sPath & File
      miDoc.OCR MODI.MiLANGUAGES.miLANG_ENGLISH, False, True
      Open sPath & File & ".txt" For Output As #1
      Print #1, miDoc.Images(0).Layout.Text
      Close #1
      File = Dir$
  Loop
  Label1.Caption = "Finished"
End Sub

Da bi izboljšal rezultate, sem poskusil po FBI-jevsko izboljšati kvaliteto slike. Naredil sem Photoshop akcijo, ki je povečala velikost in nato naredila sharpen, za nameček pa še spremenila vodoraven strip v navpično postavitev. Akcijo sem uporabil na celem direktoriju (z manjšimi problemi pri določanju imen izhodnih datotek), nato pa še enkrat naredil OCR.

Rezultat je bil mnogo boljši, ampak še vedno s precej napakami. Obupal sem in raje poiskal user-generated transkripte in jih napopal v bazo kot dodaten stolpec. Voilà.