1pub mod angle_net;
2pub mod crnn_net;
3pub mod db_net;
4pub mod ocr_error;
5pub mod ocr_lite;
6pub mod ocr_result;
7pub mod ocr_utils;
8pub mod scale_param;
9
10#[cfg(test)]
11mod tests {
12 use crate::{ocr_error::OcrError, ocr_lite::OcrLite};
13
14 #[test]
15 fn run_test() -> Result<(), OcrError> {
16 let mut ocr = OcrLite::new();
17 ocr.init_models(
18 "./models/ch_PP-OCRv4_det_infer.onnx",
19 "./models/ch_ppocr_mobile_v2.0_cls_infer.onnx",
20 "./models/ch_PP-OCRv4_rec_infer.onnx",
21 "./models/ppocr_keys_v1.txt",
22 2,
23 )?;
24
25 println!("===test_1===");
26 let res =
27 ocr.detect_from_path("./docs/test_images/test_1.png", 50, 1024, 0.5, 0.3, 1.6, true, false)?;
28 res.text_blocks.iter().for_each(|item| {
29 println!("text: {} score: {}", item.text, item.text_score);
30 });
31 println!("===test_2===");
32 let res =
33 ocr.detect_from_path("./docs/test_images/test_2.png", 50, 1024, 0.5, 0.3, 1.6, true, false)?;
34 res.text_blocks.iter().for_each(|item| {
35 println!("text: {} score: {}", item.text, item.text_score);
36 });
37
38 println!("===test_3===");
40 let test_three_img = image::open("./docs/test_images/test_3.png").unwrap().to_rgb8();
41 let res = ocr.detect(&test_three_img, 50, 1024, 0.5, 0.3, 1.6, true, false)?;
42 res.text_blocks.iter().for_each(|item| {
43 println!("text: {} score: {}", item.text, item.text_score);
44 });
45
46 Ok(())
47 }
48}