From 7d4cc9f7dd297c08e02447dda1f8aad9db0b0768 Mon Sep 17 00:00:00 2001 From: Nick White Date: Tue, 26 Mar 2019 15:21:43 +0000 Subject: Better error handling with hocr lines --- lib/hocr/lines.go | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/hocr/lines.go b/lib/hocr/lines.go index c60a619..20c6550 100644 --- a/lib/hocr/lines.go +++ b/lib/hocr/lines.go @@ -7,6 +7,7 @@ import ( "image" "image/png" "io/ioutil" + "log" "os" "path/filepath" "strings" @@ -72,9 +73,11 @@ func parseLineDetails(h Hocr, i image.Image, name string) (line.Details, error) ln.Avgconf = (totalconf / float64(num)) / 100 ln.Text = getLineText(l) ln.OcrName = name - var imgd line.ImgDirect - imgd.Img = i.(*image.Gray).SubImage(image.Rect(coords[0], coords[1], coords[2], coords[3])) - ln.Img = imgd + if i != nil { + var imgd line.ImgDirect + imgd.Img = i.(*image.Gray).SubImage(image.Rect(coords[0], coords[1], coords[2], coords[3])) + ln.Img = imgd + } lines = append(lines, ln) } return lines, nil @@ -93,15 +96,17 @@ func GetLineDetails(hocrfn string) (line.Details, error) { return newlines, err } + var img image.Image pngfn := strings.Replace(hocrfn, ".hocr", ".png", 1) pngf, err := os.Open(pngfn) if err != nil { - return newlines, err - } - defer pngf.Close() - img, err := png.Decode(pngf) - if err != nil { - return newlines, err + log.Println("Warning: can't open image %s\n", pngfn) + } else { + defer pngf.Close() + img, err = png.Decode(pngf) + if err != nil { + log.Println("Warning: can't load image %s\n", pngfn) + } } n := strings.Replace(filepath.Base(hocrfn), ".hocr", "", 1) -- cgit v1.2.1-24-ge1ad