feat(core): 公开颜色过滤与字符集限制扩展 API 并修复宏路径

This commit is contained in:
2026-08-05 20:12:27 +08:00
parent 0bddaeba24
commit 1362243f4e
6 changed files with 18 additions and 15 deletions

View File

@@ -9,7 +9,8 @@ use crate::traits::DetEngine;
pub struct 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 }
}
}

View File

@@ -4,11 +4,9 @@ use crate::error::{Result, TensorError};
use image::{DynamicImage, GenericImageView, imageops::FilterType};
use ndarray::{Array2, Array3, Array4, Axis, prelude::*, s};
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::{DetBuilder, DetOutput};
/// 目标检测结果:原图像素坐标系下的边界框、置信度与类别 ID。
#[derive(Debug, Clone, Copy)]

View File

@@ -11,15 +11,19 @@ mod det;
pub mod error;
mod ocr;
mod slide;
/// 图像加载、转换与处理工具。
pub mod utils;
/// 模型输入输出信息等共享类型。
pub mod types;
/// 推理引擎统一抽象接口。
pub mod traits;
/// 模型输入输出信息等共享类型。
pub mod types;
/// 图像加载、转换与处理工具。
pub mod utils;
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};
/// OCR 模型的统一输出枚举,由推理引擎产出,供 [`Ocr`] 后处理。
@@ -32,4 +36,3 @@ pub enum OcrOutput {
pub enum DetOutput {
Detection(ndarray::Array3<f32>),
}

View File

@@ -9,6 +9,7 @@ mod token_filter;
pub use builder::OcrBuilder;
pub use charset::Charset;
pub use color_filter::{ColorFilter, ColorPreset, HsvRange, MultiOrColorRestrict, PixelCtx};
pub use executor::{Ocr, OcrResult};
pub use metadata::{ModelMetadata, Normalization, Resize};
pub use token_filter::TokenFilter;
pub use token_filter::{CharRestrict, IdRestrict, MultiOrRestrict, TokenFilter, ValidationCtx};

View File

@@ -1,10 +1,9 @@
//! OCR 构建器。
use crate::ocr::executor::Ocr;
// use ddddocr_tract::session::OcrSession;
use crate::traits::OcrEngine;
use crate::ocr::color_filter::ColorFilter;
use crate::ocr::executor::Ocr;
use crate::ocr::token_filter::TokenFilter;
use crate::traits::OcrEngine;
/// OCR 构建器:配置识别选项后绑定引擎会话构建 [`crate::Ocr`]。
#[derive(Default)]

View File

@@ -308,7 +308,8 @@ 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() {
return false;
}