Skip to content

Commit 83ac5e9

Browse files
[formrecognizer] adjust text angle to fit in specified interval (#12248)
* adjust text angle to fit in specified interval * fix testcase expression
1 parent de7168a commit 83ac5e9

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed

sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
# Change Log azure-ai-formrecognizer
22

33
## 1.0.0b4 (Unreleased)
4+
45
**Breaking Changes**
56

67
- Remove `RecognizedReceipts` Class.
78
- `begin_recognize_receipts` and `begin_recognize_receipts_from_url` now return `RecognizedForm`.
89
- `requested_on` renamed to `training_started_on` and `completed_on` renamed to `training_completed_on` on `CustomFormModel`
910
and `CustomFormModelInfo`
1011

12+
**Fixes and improvements**
13+
14+
- Fixes a bug where `text_angle` was being returned out of the specified interval (-180, 180]
15+
1116
## 1.0.0b3 (2020-06-10)
1217

1318
**Breaking Changes**

sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_models.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ def adjust_confidence(score):
2020
return score
2121

2222

23+
def adjust_text_angle(text_angle):
24+
"""Adjust to (-180, 180]
25+
"""
26+
if text_angle > 180:
27+
text_angle -= 360
28+
return text_angle
29+
30+
2331
def get_elements(field, read_result):
2432
text_elements = []
2533

@@ -327,7 +335,7 @@ def __init__(self, **kwargs):
327335
def _from_generated(cls, read_result):
328336
return [cls(
329337
page_number=page.page,
330-
text_angle=page.angle,
338+
text_angle=adjust_text_angle(page.angle),
331339
width=page.width,
332340
height=page.height,
333341
unit=page.unit,

sdk/formrecognizer/azure-ai-formrecognizer/azure/ai/formrecognizer/_response_handlers.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
FormTable,
1414
FormTableCell,
1515
FormPageRange,
16-
RecognizedForm
16+
RecognizedForm,
17+
adjust_text_angle
1718
)
1819

1920

@@ -70,7 +71,7 @@ def prepare_content_result(response):
7071
for idx, page in enumerate(read_result):
7172
form_page = FormPage(
7273
page_number=page.page,
73-
text_angle=page.angle,
74+
text_angle=adjust_text_angle(page.angle),
7475
width=page.width,
7576
height=page.height,
7677
unit=page.unit,

sdk/formrecognizer/azure-ai-formrecognizer/tests/testcase.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,10 @@ def assertFormPagesTransformCorrect(self, pages, actual_read, page_result=None,
164164
if hasattr(page, "pages"): # this is necessary for how unlabeled forms are structured
165165
page = page.pages[0]
166166
self.assertEqual(page.page_number, actual_page.page)
167-
self.assertEqual(page.text_angle, actual_page.angle)
167+
if actual_page.angle <= 180:
168+
self.assertEqual(page.text_angle, actual_page.angle)
169+
if actual_page.angle > 180:
170+
self.assertEqual(page.text_angle, actual_page.angle - 360)
168171
self.assertEqual(page.width, actual_page.width)
169172
self.assertEqual(page.height, actual_page.height)
170173
self.assertEqual(page.unit, actual_page.unit)

0 commit comments

Comments
 (0)