Skip to content

Commit 2832722

Browse files
committed
update to latest OcrdPageResult and process_page_pcgts
1 parent e76d708 commit 2832722

File tree

3 files changed

+16
-18
lines changed

3 files changed

+16
-18
lines changed

ocrd_kraken/binarize.py

+11-16
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def executable(self):
2323
def setup(self):
2424
self.logger = getLogger('processor.KrakenBinarize')
2525

26-
def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[str] = None, page_id: Optional[str] = None) -> OcrdPageResult:
26+
def process_page_pcgts(self, *input_pcgts: Optional[OcrdPage], page_id: Optional[str] = None) -> OcrdPageResult:
2727
"""Binarize the pages/regions/lines with Kraken.
2828
2929
Iterate over the input PAGE element hierarchy down to the requested
@@ -47,37 +47,32 @@ def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[st
4747
self.logger.debug('Level of operation: "%s"', self.parameter['level-of-operation'])
4848

4949
pcgts = input_pcgts[0]
50+
assert pcgts
5051
page = pcgts.get_Page()
5152
assert page
5253
page_image, page_xywh, _ = self.workspace.image_from_page(
5354
page, page_id, feature_filter='binarized')
5455
result = OcrdPageResult(pcgts)
5556
if self.parameter['level-of-operation'] == 'page':
5657
self.logger.info("Binarizing page '%s'", page_id)
57-
bin_image = kraken.binarization.nlbin(page_image)
58-
bin_image_id = f'{output_file_id}.IMG-BIN'
59-
bin_image_path = join(self.output_file_grp, f'{bin_image_id}.png')
60-
page.add_AlternativeImage(AlternativeImageType(filename=bin_image_path, comments=f'{page_xywh["features"]},binarized'))
61-
result.images.append(OcrdPageResultImage(bin_image, bin_image_id, bin_image_path))
58+
alternative_image = AlternativeImageType(comments=f'{page_xywh["features"]},binarized')
59+
page.add_AlternativeImage(alternative_image)
60+
result.images.append(OcrdPageResultImage(kraken.binarization.nlbin(page_image), '.IMG-BIN', alternative_image))
6261
else:
6362
for region in page.get_AllRegions(classes=['Text']):
6463
region_image, region_xywh = self.workspace.image_from_segment(
6564
region, page_image, page_xywh, feature_filter='binarized')
6665
if self.parameter['level-of-operation'] == 'region':
6766
self.logger.info("Binarizing region '%s'", region.id)
68-
bin_image = kraken.binarization.nlbin(region_image)
69-
bin_image_id = f'{output_file_id}_{region.id}.IMG-BIN'
70-
bin_image_path = join(self.output_file_grp, f'{bin_image_id}.png')
71-
region.add_AlternativeImage(AlternativeImageType(filename=bin_image_path, comments=f'{region_xywh["features"]},binarized'))
72-
result.images.append(OcrdPageResultImage(bin_image, bin_image_id, bin_image_path))
67+
alternative_image = AlternativeImageType(comments=f'{region_xywh["features"]},binarized')
68+
region.add_AlternativeImage(alternative_image)
69+
result.images.append(OcrdPageResultImage(kraken.binarization.nlbin(region_image), f'{region.id}.IMG-BIN', alternative_image))
7370
else:
7471
for line in region.get_TextLine():
7572
line_image, line_xywh = self.workspace.image_from_segment(
7673
line, region_image, region_xywh, feature_filter='binarized')
7774
self.logger.info("Binarizing line '%s'", line.id)
78-
bin_image = kraken.binarization.nlbin(line_image)
79-
bin_image_id = f'{output_file_id}_{region.id}_{line.id}.IMG-BIN'
80-
bin_image_path = join(self.output_file_grp, f'{bin_image_id}.png')
81-
line.add_AlternativeImage(AlternativeImageType(filename=bin_image_path, comments=f'{page_xywh["features"]},binarized'))
82-
result.images.append(OcrdPageResultImage(bin_image, bin_image_id, bin_image_path))
75+
alternative_image = AlternativeImageType(comments=f'{line_xywh["features"]},binarized')
76+
line.add_AlternativeImage(alternative_image)
77+
result.images.append(OcrdPageResultImage(kraken.binarization.nlbin(line_image), f'{region.id}_{line.id}.IMG-BIN', alternative_image))
8378
return result

ocrd_kraken/recognize.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def predict(page_image, segmentation):
6868
self.parameter['bidi_reordering'])
6969
self.predict = predict
7070

71-
def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[str] = None, page_id: Optional[str] = None) -> OcrdPageResult:
71+
def process_page_pcgts(self, *input_pcgts: Optional[OcrdPage], page_id: Optional[str] = None) -> OcrdPageResult:
7272
"""Recognize text on lines with Kraken.
7373
7474
Open the parsed PAGE-XML file, then iterate over the element hierarchy
@@ -92,7 +92,9 @@ def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[st
9292
from kraken.containers import Segmentation, BaselineLine, BBoxLine
9393

9494
pcgts = input_pcgts[0]
95+
assert pcgts
9596
page = pcgts.get_Page()
97+
assert page
9698
page_image, page_coords, _ = self.workspace.image_from_page(
9799
page, page_id,
98100
feature_selector="binarized"

ocrd_kraken/segment.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def segmenter(img, mask=None):
6262
return segment(img, mask=mask, **kwargs)
6363
self.segmenter = segmenter
6464

65-
def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[str] = None, page_id: Optional[str] = None) -> OcrdPageResult:
65+
def process_page_pcgts(self, *input_pcgts: Optional[OcrdPage], page_id: Optional[str] = None) -> OcrdPageResult:
6666
"""Segment into (regions and) lines with Kraken.
6767
6868
Iterate over the element hierarchy of the PAGE-XML down to the
@@ -89,6 +89,7 @@ def process_page_pcgts(self, *input_pcgts: OcrdPage, output_file_id: Optional[st
8989
"""
9090

9191
pcgts = input_pcgts[0]
92+
assert pcgts
9293
page = pcgts.get_Page()
9394
assert page
9495
page_image, page_coords, page_info = self.workspace.image_from_page(

0 commit comments

Comments
 (0)