Development of the ocr part of AOI
Samo Penic
2018-11-16 0b5a8decb9cc2ba96d2aed1721e48bafb751e33c
Ocr.py
@@ -1,16 +1,18 @@
from pyzbar.pyzbar import decode
from sid_process import getSID
import cv2
import numpy as np
import math
class Paper:
    def __init__(self, filename=None):
    def __init__(self, filename=None, sid_classifier=None):
        self.filename = filename
        self.invalid = None
        self.QRData = None
        self.errors = []
        self.warnings = []
        self.sid_classifier=sid_classifier
        if filename is not None:
            self.loadImage(filename)
            self.runOcr()
@@ -136,8 +138,8 @@
            loc_filtered_x, loc_filtered_y = zip(
                *sorted(zip(loc_filtered_x, loc_filtered_y))
            )
        # loc=[loc_filtered_y,loc_filtered_x]
        # remove duplicates
            # loc=[loc_filtered_y,loc_filtered_x]
            # remove duplicates
            a = np.diff(loc_filtered_x) > 40
            a = np.append(a, True)
            loc_filtered_x = np.array(loc_filtered_x)
@@ -210,3 +212,15 @@
                black = totpx - cv2.countNonZero(roi)
                oneline.append(black / totpx)
            self.answerMatrix.append(oneline)
    def get_enhanced_sid(self):
        if self.sid_classifier is None:
            return "x"
        es = getSID(
            self.img[
                int(0.045 * self.imgHeight) : int(0.085 * self.imgHeight),
                int(0.7 * self.imgWidth) : int(0.99 * self.imgWidth),
            ],
            self.sid_classifier,
        )
        return es