{"id":19489365,"url":"https://github.com/salute-developers/salutevision-sdk-docs","last_synced_at":"2026-03-19T10:06:42.350Z","repository":{"id":65527967,"uuid":"580766393","full_name":"salute-developers/salutevision-sdk-docs","owner":"salute-developers","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-25T10:12:36.000Z","size":16,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"ios","last_synced_at":"2025-01-08T08:40:06.066Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salute-developers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-12-21T11:51:17.000Z","updated_at":"2023-10-19T12:06:53.000Z","dependencies_parsed_at":"2023-02-15T08:17:01.515Z","dependency_job_id":"d07eaf06-e2db-4b83-9f69-1315fa1719f0","html_url":"https://github.com/salute-developers/salutevision-sdk-docs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salute-developers%2Fsalutevision-sdk-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salute-developers%2Fsalutevision-sdk-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salute-developers%2Fsalutevision-sdk-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salute-developers%2Fsalutevision-sdk-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salute-developers","download_url":"https://codeload.github.com/salute-developers/salutevision-sdk-docs/tar.gz/refs/heads/ios","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240731721,"owners_count":19848572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T21:08:19.174Z","updated_at":"2026-02-11T12:04:29.422Z","avatar_url":"https://github.com/salute-developers.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# SaluteVision Mobile iOS SDK\n\nSDK алгоритмов компьютерного зрения для iOS.\n\nSaluteVision Mobile SDK — это набор инструментов для решения задач с использованием компьютерного зрения.\n\niOS SDK доступен в виде `salutevision-mobile.xcframework`.\n\n`xcframework` содержит зависимости под все целевые платформы и архитектуры в едином bundle.\n\n**Поддерживаемые архитектуры:**\n\n- ios-arm64,\n- ios-x86_64-simulator,\n- ios-arm64-simulator.\n\n\n\n## Работа с изображениями\n\nРабота с изображениями в iOS SDK осуществляется через класс `SaluteVisionImage`.\n\nЧтобы создать экземпляр класса `SaluteVisionImage`, передайте данные в конструктор в формате `CVPixelBuffer`.\n\nВ большинстве случаев `CVPixelBuffer` — это стандартная сущность для получения фрейма с камеры телефона на платформе iOS.\n\nТакже `SaluteVisionImage` поддерживает конвертацию в `UIImage`.\n\n## Подключение\n\nДля подключения библиотеки и доступа к моделям SDK используется стандартная команда:\n\n```\nimport SaluteVision\n```\n\n## Использование SDK\n\nВся функциональность SDK поставляется в виде независимых классов. Например: `BarcodeReader`, `MRZReader`.\n\nКаждый из классов может быть использован как независимо, так и в сочетании с другими. \n\n## Использование BarcodeReader\n\n1. Создаем экземляр класса\n```swift\nprivate let reader = BarcodeReader(formats: [\n    .qr,\n    .aztec\n])\n```\n2. Создаем экземпляр класса `SaluteVisionImage`\n```swift\nlet pixelBuffer = ... // получить CVPixelBuffer\nlet image = SaluteVisionImage(pixelBuffer: pixelBuffer)\n```\n\n3. Можно использовать прямоугольник с областью интереса (ROI). Это та область изображения, в которой должен находится штрих-код.\n```swift\nlet roi: CGRect = ... // получить CGRect, обозначающий область изображения со штрих-кодом\n```\n\n4. Запускаем процесс распознавания и обрабатываем результат\n```swift\n// C использованием ROI\nguard let results = reader.read(from: image, inside: roi) else {\n    print(\"Empty result\")\n    return\n}\n// Без использования ROI\nguard let results = reader.read(from: image) else {\n    print(\"Empty result\")\n    return\n}\n\n// вывод информации о типе первого распознанного штрих-кода и результат распознования\nprint(\"Result did obtain, type: \\(results.first?.info?.format.rawValue), result: \\(results.first?.info?.text)\")\n```\n## Использование MRZReader\n\n1. Создаем экземпляр класса\n```swift\nprivate let reader = MRZReader()\n```\n\n2. Добавляем наблюдателя (observer), который должен реализовывать `MRZReaderObserver` протокол.\n```swift\nreader.registerObserver(self)\n```\n\n3. Создаем экземпляр класса `SaluteVisionImage`\n```swift\nlet pixelBuffer = ... // получить CVPixelBuffer\nlet image = SaluteVisionImage(pixelBuffer: pixelBuffer)\n```\n\n4. Запускаем процесс распознавания и получаем геометрию локализации (синхронно)\n```swift\nlet geometries = reader.read(image: image)\n```\n5. Результат распознования приходит наблюдателю в методе `func infoDidObtain(_ info: MRZInfo)` (асинхронно)\n```swift\n func infoDidObtain(_ info: MRZInfo) {\n     print(\"His name is \\(info.name) and he is from \\(info.country)\")   \n }\n```\n\n## Использование DocumentLocalization\n\n1. Создаем экземляр класса\n```swift\nprivate let localization = DocumentLocalization()\n```\n2. Создаем экземпляр класса `SaluteVisionImage`\n```swift\nlet pixelBuffer = ... // получить CVPixelBuffer\nlet image = SaluteVisionImage(pixelBuffer: pixelBuffer)\n```\n\n3. Запускаем процесс локализации и обрабатываем результат\n```swift\nlet result = localization.predict(image: image, shouldCorrectAR: true)\n\nif result.isStable, let cropImage = result.cropImage {\n    // Работаем с cropImage\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalute-developers%2Fsalutevision-sdk-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalute-developers%2Fsalutevision-sdk-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalute-developers%2Fsalutevision-sdk-docs/lists"}