Skip to content

Commit

Permalink
Merge pull request #5 from magauran/salangin/fixes
Browse files Browse the repository at this point in the history
Remarkable fixes
  • Loading branch information
romanmazeev authored Sep 28, 2021
2 parents 002964a + 1947c83 commit aad052b
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 30 deletions.
4 changes: 2 additions & 2 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"repositoryURL": "https://github.com/appintheair/MRZParser.git",
"state": {
"branch": null,
"revision": "d3f92ce2bc9ab1db6925839626600f31198b5946",
"version": "1.1.1"
"revision": "98ef7d43a98991b0296e993f76562ebd29038595",
"version": "1.1.2"
}
}
]
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ let package = Package(
),
],
dependencies: [
.package(url: "https://github.com/appintheair/MRZParser.git", .upToNextMajor(from: "1.1.1"))
.package(url: "https://github.com/appintheair/MRZParser.git", .upToNextMajor(from: "1.1.2"))
],
targets: [
.target(
Expand Down
29 changes: 15 additions & 14 deletions Sources/MRZScanner/Private/Scanner/DefaultScanner.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,12 @@ struct DefaultScanner: Scanner {
orientation: orientation,
regionOfInterest: regionOfInterest,
minimumTextHeight: minimumTextHeight,
recognitionLevel: .fast
recognitionLevel: recognitionLevel
) {
switch $0 {
case .success(let results):
if scanningType == .live {
DispatchQueue.main.async {
foundBoundingRectsHandler?(results.map { $0.boundingRect })
}
DispatchQueue.main.async {
foundBoundingRectsHandler?(results.map { $0.boundingRect })
}

let validatedResult = validator.getValidatedResults(from: results.map { $0.results })
Expand Down Expand Up @@ -85,16 +83,19 @@ struct DefaultScanner: Scanner {
from results: [TextRecognizerResult],
validLines: ValidatedResults
) -> ScannedBoundingRects {
let allBoundingRects = results.map { $0.boundingRect }
let validRectIndexes = validLines.map { $0.index }
let validRects = allBoundingRects.enumerated()
.filter { validRectIndexes.contains($0.offset) }
.map { $0.element }
let invalidRects = allBoundingRects.enumerated()
.filter { !validRectIndexes.contains($0.offset) }
.map { $0.element }
let allBoundingRects = results.map(\.boundingRect)
let validRectIndexes = Set(validLines.map(\.index))

var scannedBoundingRects: ScannedBoundingRects = ([], [])
allBoundingRects.enumerated().forEach {
if validRectIndexes.contains($0.offset) {
scannedBoundingRects.valid.append($0.element)
} else {
scannedBoundingRects.invalid.append($0.element)
}
}

return (validRects, invalidRects)
return scannedBoundingRects
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,3 @@ struct VisionTextRecognizer: TextRecognizer {
}
}
}

extension CGRect: Hashable {
public func hash(into hasher: inout Hasher) {
hasher.combine(origin.x)
hasher.combine(origin.y)
hasher.combine(size.width)
hasher.combine(size.height)
}
}
4 changes: 2 additions & 2 deletions Sources/MRZScanner/Private/Validators/MRZValidator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ struct MRZValidator: Validator {
guard validLines.count < validMRZCode.linesCount else { break }
for (index, lines) in possibleLines.enumerated() {
guard validLines.count < validMRZCode.linesCount else { break }
let spaceFreeLines = lines.map { $0.filter { $0 != " " } }
let spaceFreeLines = lines.lazy.map { $0.filter { !$0.isWhitespace } }
guard let mostLikelyLine = spaceFreeLines.first(where: {
$0.count == validMRZCode.lineLenth
$0.count == validMRZCode.lineLength
}) else { continue }
validLines.append(.init(result: mostLikelyLine, index: index))
}
Expand Down
2 changes: 1 addition & 1 deletion Sources/MRZScanner/Private/Validators/Validator.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ typealias ValidatedResults = [ValidatedResult]
struct ValidatedResult {
/// MRZLine
let result: String
/// MRZLine bouningRect index
/// MRZLine boundingRect index
let index: Int
}

Expand Down
4 changes: 3 additions & 1 deletion Sources/MRZScanner/Public/MRZScanner/ImageMRZScanner.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import CoreImage

public struct ImageMRZScanner: ScannerService {
var scanner: DefaultScanner
let scanner: DefaultScanner

public init() {
scanner = DefaultScanner(
Expand All @@ -32,6 +32,7 @@ public struct ImageMRZScanner: ScannerService {
regionOfInterest: CGRect? = nil,
minimumTextHeight: Float? = nil,
recognitionLevel: RecognitionLevel = .accurate,
foundBoundingRectsHandler: (([CGRect]) -> Void)? = nil,
completionHandler: @escaping (Result<DocumentScanningResult<ParsedResult>, Error>) -> Void
) {
scanner.scan(
Expand All @@ -41,6 +42,7 @@ public struct ImageMRZScanner: ScannerService {
regionOfInterest: regionOfInterest,
minimumTextHeight: minimumTextHeight,
recognitionLevel: recognitionLevel,
foundBoundingRectsHandler: foundBoundingRectsHandler,
completionHandler: completionHandler
)
}
Expand Down

0 comments on commit aad052b

Please sign in to comment.