如何将相机拍摄的单张图像与 flutter 中本地保存在 hive 中的图像列表进行匹配

问题描述 投票:0回答:1

我正在尝试将相机中的一张照片与本地保存在 hive 中的 100 多张图像进行比较,并找出 flutter 中最匹配的一张。
例如我想通过拍摄书的封面照片来找出我面前的一本书的信息,并查看照片中是否显示了 hive 中保存的任何书的封面。

也许我用错了它,我尝试了 image_compare 包,但花了一些时间才给我,因为它甚至对 2 个图像比较也一一比较像素。

想知道在这种情况下是否有更有效的方法或包可以使用?

非常感谢。

flutter image
1个回答
0
投票

请理解以下根据您的情况进行修改的用例。希望这能回答您的疑问。

import 'package:equatable/equatable.dart';
void main() {
  ImageLocalModel saveImageInHive = ImageLocalModel(base64Image: '',imageName: 'image1',pickedAt: DateTime.now().toString());
  ImageLocalModel pickedImage = ImageLocalModel(base64Image: '',imageName: 'image1',pickedAt: DateTime.now().toString());
  //Check directly with equal operator
  print(saveImageInHive == pickedImage);
}

class ImageLocalModel extends Equatable {
  final String base64Image;
  final String imageName;
  final DateTime pickedAt;

  const ImageLocalModel({
    required this.base64Image,
    required this.imageName,
    required this.pickedAt,
  });

  @override
  List<Object?> get props => [base64Image, imageName, pickedAt];

  factory ImageLocalModel.fromJson(Map<String, dynamic> json) {
    return ImageLocalModel(
      base64Image: json['base64Image'],
      imageName: json['imageName'],
      pickedAt: DateTime.parse(json['pickedAt']),
    );
  }

  Map<String, dynamic> toJson() {
    return {
      'base64Image': base64Image,
      'imageName': imageName,
      'pickedAt': pickedAt.toIso8601String(),
    };
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.