! 이미지 텍스트 인식 (:ocr_text)
선언
인식 결과, 결과 상세 정보 = 이미지:ocr_text([ 엔진 옵션, 이진화 옵션 ])
매개변수
-
엔진 옵션
선택적 테이블 매개변수입니다. 인식 언어와 인식 엔진을 선택하는 데 사용합니다.매개변수 구조
{
-- engine 필드를 "apple"로 설정하면 iOS 13 이상에 내장된 Apple의 Vision.framework를 사용하여 인식합니다
-- image.vision_supported_recognition_languages() 함수로 Vision.framework가 지원하는 OCR 모델 목록을 가져올 수 있습니다
-- engine 필드를 "paddle"로 설정하면 Paddle-Lite 엔진으로 인식합니다. lang으로 모델을 지정할 수 있습니다
-- 예를 들어 lang = "ppocr_ch"이면 /var/mobile/Media/1ferver/models/ppocr_ch 모델을 사용합니다
-- Paddle-Lite 엔진은 *.nb 형식의 Slim 모델을 지원합니다
engine = "apple" | "paddle" | "tesseract",
lang = "zh-Hans",
}iOS 버전별 내장 Vision.framework가 지원하는 OCR 모델 목록
{ -- iOS 13
[1] = "en-US",
}
{ -- iOS 14~15
[1] = "en-US",
[2] = "fr-FR",
[3] = "it-IT",
[4] = "de-DE",
[5] = "es-ES",
[6] = "pt-BR",
[7] = "zh-Hans",
[8] = "zh-Hant",
}
{ -- iOS 16
[ 1] = "en-US",
[ 2] = "fr-FR",
[ 3] = "it-IT",
[ 4] = "de-DE",
[ 5] = "es-ES",
[ 6] = "pt-BR",
[ 7] = "zh-Hans",
[ 8] = "zh-Hant",
[ 9] = "yue-Hans",
[10] = "yue-Hant",
[11] = "ko-KR",
[12] = "ja-JP",
[13] = "ru-RU",
[14] = "uk-UA",
} -
이진화 옵션
실수입니다. 이진화 임계값입니다. 이미지 자동 이진화를 참고할 수 있습니다.
테이블입니다. 사용자 지정 이진화 색상 편차입니다. 이미지 수동 이진화를 참고하십시오.
문자열입니다. 사용자 지정 이진화 색상 편차입니다. 이미지 수동 이진화를 참고하십시오.
반환값
-
인식 결과
문자열입니다. 인식된 텍스트를 반환합니다. -
결과 상세 정보
테이블입니다.OCR 인식 결과 상세 정보 구조
{
{
["y"] = number_value,
["x"] = number_value,
["w"] = number_value,
["h"] = number_value,
["confidence"] = number_value(0.0000 ~ 1.0000),
["text"] = string_value,
},
...
}
설명
이미지의 텍스트를 인식합니다. 영역 매개변수가 필요 없다는 점을 제외하면 화면 영역 텍스트 인식(screen.ocr_text)과 같습니다.
소프트웨어 버전 1.3.8 이상에서 사용할 수 있습니다.
PaddleLite 중국어 간체 일반 모델(압축 해제 필요)
PaddleLite 중국어 간체 완전판 모델(압축 해제 필요)
PaddleLite 중국어 번체 인식 모델(압축 해제 필요)
PaddleLite 일본어 인식 모델(압축 해제 필요)
PaddleLite 한국어 인식 모델(압축 해제 필요)
PaddleLite 영어 및 숫자 인식 모델(압축 해제 필요)
PaddleOCR 모델 목록에서 해당 모델을 다운로드하여det_opt.nb,cls_opt.nb,rec_opt.nb로 변환한 다음, 해당dict.txt를 찾아 함께 사용할 수도 있습니다.
예제
-- 1.3.8 이상 예제
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
txt, info = img:ocr_text("en-US") -- iOS 13 이상에서는 Apple 내장 en-US 모델로 영어와 숫자를 인식할 수 있습니다
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text("zh-Hans") -- iOS 14 이상에서는 Apple 내장 zh-Hans 모델로 중국어 간체를 인식할 수 있습니다
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "apple", -- Apple 엔진 사용
lang = "zh-Hans" -- 중국어 간체 인식 모델 사용
}, "9D5D39-0F1F26,D3D3D2-2C2C2D")
sys.toast("识别结果:"..txt:atrim())
txt, info = img:ocr_text({
engine = "paddle", -- PaddleLite OCR 엔진 사용
lang = "ppocr_ch", -- ppocr_ch 모델 사용
})
sys.toast("识别结果:"..txt:atrim())
참고: 위 코드에서는 이 장에서 다루지 않는 함수인 sys.toast와 string.atrim을 사용합니다.
이전 버전 호환용 예제(권장하지 않음)
local img = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
-- 예제 1:
local txt = img:ocr_text() -- 기본 설정에서는 tesseract 엔진의 영어 및 숫자 모드로 텍스트를 인식합니다
sys.toast("识别结果:"..txt:atrim())
--
-- 예제 2:
local txt = img:ocr_text("eng", "9D5D39-0F1F26,D3D3D2-2C2C2D") -- 색상 편차 이진화로 인식합니다
sys.toast("识别结果:"..txt:atrim())
--
-- 예제 3:
local txt = img:ocr_text("eng", { {0x9D5D39, 0x0F1F26}, {0xD3D3D2, 0x2C2C2D} }) -- 색상 편차 이진화로 인식하며 위와 같습니다
sys.toast("识别结果:"..txt:atrim())
--
-- 예제 4:
local txt = img:ocr_text({
lang = "chi_sim", -- tesseract 엔진의 중국어 간체 라이브러리로 인식합니다(중국어 간체 라이브러리는 내장되어 있지 않습니다)
white_list = "你我他", -- 화이트리스트를 "你我他"로 설정합니다
})
sys.toast("识别结果:"..txt:atrim())
--
-- 예제 5:
local txt = img:ocr_text({
lang = "eng",
white_list = "1234567890", -- 사용자 지정 화이트리스트를 사용하여 숫자만 인식하도록 제한합니다
}, "9D5D39-0F1F26,D3D3D2-2C2C2D") -- 색상 편차 이진화로 인식합니다
sys.toast("识别结果:"..txt:atrim())
참고: 위 코드에서는 이 장에서 다루지 않는 함수인 sys.toast와 string.atrim을 사용합니다.