photo_classifier.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import 'photo_classifier_platform_interface.dart';
  2. import 'models.dart';
  3. /// 照片分类插件主类
  4. class PhotoClassifier {
  5. /// 开始照片分类过程,返回一个提供实时更新的流
  6. ///
  7. /// [types] 指定要执行的分类类型,可以是以下值的组合:
  8. /// - 'similar': 查找相似图片组
  9. /// - 'people': 查找包含人物的图片
  10. /// - 'screenshot': 查找屏幕截图
  11. /// - 'blurry': 查找模糊图片
  12. ///
  13. /// 返回一个流,发出ClassificationEvent事件,包含进度和当前结果
  14. Stream<ClassificationEvent?> startClassificationStream({
  15. List<PhotoImageClassifyType> types = PhotoImageClassifyType.values,
  16. }) {
  17. return PhotoClassifierPlatform.instance.startClassificationStream(types: types);
  18. }
  19. /// 配置照片分类器
  20. ///
  21. /// [batchSize] 每批处理的图片数量
  22. /// [maxConcurrentProcessing] 最大并发处理数量
  23. /// [similarityThreshold] 相似度判定阈值(0.0-1.0),值越大表示要求越相似
  24. Future configureClassifier({
  25. int? batchSize,
  26. int? maxConcurrentProcessing,
  27. double? similarityThreshold,
  28. }) {
  29. return PhotoClassifierPlatform.instance.configureClassifier(
  30. batchSize: batchSize,
  31. maxConcurrentProcessing: maxConcurrentProcessing,
  32. similarityThreshold: similarityThreshold,
  33. );
  34. }
  35. /// 重置照片分类器
  36. Future resetClassifier() {
  37. return PhotoClassifierPlatform.instance.resetClassifier();
  38. }
  39. /// 检查是否已加载完所有资源
  40. Future checkAssetsLoaded() {
  41. return PhotoClassifierPlatform.instance.checkAssetsLoaded();
  42. }
  43. }