package com.xindao.ocr.smartjavaai.model.plate; import ai.djl.inference.Predictor; import ai.djl.modality.cv.Image; import cn.smartjavaai.common.entity.R; import com.xindao.ocr.smartjavaai.config.PlateRecModelConfig; import com.xindao.ocr.smartjavaai.entity.PlateInfo; import com.xindao.ocr.smartjavaai.entity.PlateResult; import org.apache.commons.pool2.impl.GenericObjectPool; import java.awt.image.BufferedImage; import java.io.InputStream; import java.util.List; /** * 车牌识别模型 * @author dwj */ public interface PlateRecModel extends AutoCloseable{ /** * 加载模型 * @param config */ void loadModel(PlateRecModelConfig config); // 加载模型 /** * 车牌识别 * @param imagePath 图片路径 * @return */ default R> recognize(String imagePath) { throw new UnsupportedOperationException("默认不支持该功能"); } /** * 车牌识别 * @param inputStream * @return */ default R> recognize(InputStream inputStream) { throw new UnsupportedOperationException("默认不支持该功能"); } /** * 车牌识别 * @param base64Image * @return */ default R> recognizeBase64(String base64Image){ throw new UnsupportedOperationException("默认不支持该功能"); } /** * 车牌识别 * @param image BufferedImage * @return */ default R> recognize(BufferedImage image) { throw new UnsupportedOperationException("默认不支持该功能"); } /** * 车牌识别 * @param imageData 图片字节数组 * @return */ default R> recognize(byte[] imageData) { throw new UnsupportedOperationException("默认不支持该功能"); } /** * 车牌识别 * @param image DJL Image * @return */ default R> recognize(Image image){ throw new UnsupportedOperationException("默认不支持该功能"); } /** * 识别裁剪后的图片 * @return */ default PlateResult recognizeCropped(Image image){ throw new UnsupportedOperationException("默认不支持该功能"); } /** * 检测并绘制结果 * @param imagePath 图片输入路径(包含文件名称) * @param outputPath 图片输出路径(包含文件名称) */ default R recognizeAndDraw(String imagePath, String outputPath) { throw new UnsupportedOperationException("默认不支持该功能"); } /** * 检测并绘制结果 * @param sourceImage * @return */ default R recognizeAndDraw(BufferedImage sourceImage){ throw new UnsupportedOperationException("默认不支持该功能"); } default GenericObjectPool> getPool() { throw new UnsupportedOperationException("默认不支持该功能"); } }