feat(core): 公开颜色过滤与字符集限制扩展 API 并修复宏路径
This commit is contained in:
@@ -9,7 +9,8 @@ use crate::traits::DetEngine;
|
|||||||
pub struct DetBuilder;
|
pub struct DetBuilder;
|
||||||
|
|
||||||
impl DetBuilder {
|
impl DetBuilder {
|
||||||
fn build_with<E: DetEngine>(self, runtime: &E) -> Detector<'_> {
|
/// 绑定检测引擎会话并构建 Detector。
|
||||||
|
pub fn build_with<E: DetEngine>(self, runtime: &E) -> Detector<'_> {
|
||||||
Detector { runtime }
|
Detector { runtime }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,11 +4,9 @@ use crate::error::{Result, TensorError};
|
|||||||
use image::{DynamicImage, GenericImageView, imageops::FilterType};
|
use image::{DynamicImage, GenericImageView, imageops::FilterType};
|
||||||
use ndarray::{Array2, Array3, Array4, Axis, prelude::*, s};
|
use ndarray::{Array2, Array3, Array4, Axis, prelude::*, s};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
// use tract_onnx::prelude::{Tensor};
|
|
||||||
|
|
||||||
// use ddddocr_tract::det::session::DetSession;
|
|
||||||
use crate::{DetBuilder, DetOutput, OcrBuilder};
|
|
||||||
use crate::traits::DetEngine;
|
use crate::traits::DetEngine;
|
||||||
|
use crate::{DetBuilder, DetOutput};
|
||||||
|
|
||||||
/// 目标检测结果:原图像素坐标系下的边界框、置信度与类别 ID。
|
/// 目标检测结果:原图像素坐标系下的边界框、置信度与类别 ID。
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
|
|||||||
@@ -11,15 +11,19 @@ mod det;
|
|||||||
pub mod error;
|
pub mod error;
|
||||||
mod ocr;
|
mod ocr;
|
||||||
mod slide;
|
mod slide;
|
||||||
/// 图像加载、转换与处理工具。
|
|
||||||
pub mod utils;
|
|
||||||
/// 模型输入输出信息等共享类型。
|
|
||||||
pub mod types;
|
|
||||||
/// 推理引擎统一抽象接口。
|
/// 推理引擎统一抽象接口。
|
||||||
pub mod traits;
|
pub mod traits;
|
||||||
|
/// 模型输入输出信息等共享类型。
|
||||||
|
pub mod types;
|
||||||
|
/// 图像加载、转换与处理工具。
|
||||||
|
pub mod utils;
|
||||||
|
|
||||||
pub use crate::det::{DetBuilder, DetectionResult, Detector};
|
pub use crate::det::{DetBuilder, DetectionResult, Detector};
|
||||||
pub use crate::ocr::{Charset, ModelMetadata, Normalization, Ocr, OcrBuilder, OcrResult, Resize};
|
pub use crate::ocr::{
|
||||||
|
CharRestrict, Charset, ColorFilter, ColorPreset, HsvRange, IdRestrict, ModelMetadata,
|
||||||
|
MultiOrColorRestrict, MultiOrRestrict, Normalization, Ocr, OcrBuilder, OcrResult, PixelCtx,
|
||||||
|
Resize, TokenFilter, ValidationCtx,
|
||||||
|
};
|
||||||
pub use crate::slide::{SlideResult, Slider};
|
pub use crate::slide::{SlideResult, Slider};
|
||||||
|
|
||||||
/// OCR 模型的统一输出枚举,由推理引擎产出,供 [`Ocr`] 后处理。
|
/// OCR 模型的统一输出枚举,由推理引擎产出,供 [`Ocr`] 后处理。
|
||||||
@@ -32,4 +36,3 @@ pub enum OcrOutput {
|
|||||||
pub enum DetOutput {
|
pub enum DetOutput {
|
||||||
Detection(ndarray::Array3<f32>),
|
Detection(ndarray::Array3<f32>),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ mod token_filter;
|
|||||||
|
|
||||||
pub use builder::OcrBuilder;
|
pub use builder::OcrBuilder;
|
||||||
pub use charset::Charset;
|
pub use charset::Charset;
|
||||||
|
pub use color_filter::{ColorFilter, ColorPreset, HsvRange, MultiOrColorRestrict, PixelCtx};
|
||||||
pub use executor::{Ocr, OcrResult};
|
pub use executor::{Ocr, OcrResult};
|
||||||
pub use metadata::{ModelMetadata, Normalization, Resize};
|
pub use metadata::{ModelMetadata, Normalization, Resize};
|
||||||
pub use token_filter::TokenFilter;
|
pub use token_filter::{CharRestrict, IdRestrict, MultiOrRestrict, TokenFilter, ValidationCtx};
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
//! OCR 构建器。
|
//! OCR 构建器。
|
||||||
|
|
||||||
use crate::ocr::executor::Ocr;
|
|
||||||
// use ddddocr_tract::session::OcrSession;
|
|
||||||
use crate::traits::OcrEngine;
|
|
||||||
use crate::ocr::color_filter::ColorFilter;
|
use crate::ocr::color_filter::ColorFilter;
|
||||||
|
use crate::ocr::executor::Ocr;
|
||||||
use crate::ocr::token_filter::TokenFilter;
|
use crate::ocr::token_filter::TokenFilter;
|
||||||
|
use crate::traits::OcrEngine;
|
||||||
|
|
||||||
/// OCR 构建器:配置识别选项后绑定引擎会话构建 [`crate::Ocr`]。
|
/// OCR 构建器:配置识别选项后绑定引擎会话构建 [`crate::Ocr`]。
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
|||||||
@@ -308,7 +308,8 @@ impl<'a> Ocr<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
impl<'a> Ocr<'a> {
|
impl<'a> Ocr<'a> {
|
||||||
fn is_valid_indices(&self, idx: usize) -> bool {
|
/// 判断索引是否为当前限制下的有效字符索引。
|
||||||
|
pub fn is_valid_indices(&self, idx: usize) -> bool {
|
||||||
if idx >= self.runtime.metadata().charset.size() {
|
if idx >= self.runtime.metadata().charset.size() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user