def deep_scan(self, slot):
        if not self._is_slot_worth_scanning(slot):
            return []

        img = self._slot_image(slot)
        fps = list(Locator().locate_deep(img, self.radius_avg))
        barcodes = [DataMatrix(fp, img) for fp in fps]

        self._DEBUG_MULTI_FP_IMAGE(img, fps, slot.number())

        return barcodes
    def square_scan(self, slot):
        if not self._is_slot_worth_scanning(slot):
            return None

        img = self._slot_image(slot)
        fp = Locator().locate_square(img, self.side_avg)

        barcode = None
        if fp is not None:
            self._DEBUG_SQUARE_LOCATOR(img, fp, slot.number())
            barcode = DataMatrix(fp, img)

        return barcode