优化相似度算法

dev_xd
lj7788@126.com 2025-09-04 09:50:06 +08:00
parent ccd0e6cd49
commit 35999112a3
2 changed files with 31 additions and 9 deletions

View File

@ -46,7 +46,7 @@
<lowagie.iTextAsian.version>1.0</lowagie.iTextAsian.version>
<itextpdf.version>5.5.13</itextpdf.version>
<aspose.words.version>15.8.0</aspose.words.version>
<opencv.version>4.5.1-2</opencv.version>
<opencv.version>4.9.0-0</opencv.version>
</properties>
<!-- 依赖声明 -->

View File

@ -8,6 +8,8 @@ import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import org.opencv.core.Core;
import org.opencv.core.Mat;
@ -400,15 +402,35 @@ public class ImageSimilarityUtils {
String userPicture5 = "http://62.234.3.186/statics/2025/06/11/87052f8fa3eaa8840bc2e4fe556a825e_20250611101011A328.jpg";
String img1=userPicture4;
String img2=userPicture5;
System.out.println("\n测试1:不同人的不同照片");
System.out.println("照片2: " + img1);
System.out.println("照片5: " + img2);
Map<String,String[]> map = new HashMap<>();
map.put("1-2",new String[]{userPicture1,userPicture2});
map.put("1-3",new String[]{userPicture1,userPicture3});
map.put("1-4",new String[]{userPicture1,userPicture4});
map.put("1-5",new String[]{userPicture1,userPicture5});
map.put("2-3",new String[]{userPicture2,userPicture3});
map.put("2-4",new String[]{userPicture2,userPicture4});
map.put("2-5",new String[]{userPicture2,userPicture5});
map.put("3-4",new String[]{userPicture3,userPicture4});
map.put("3-5",new String[]{userPicture3,userPicture5});
map.put("4-5",new String[]{userPicture4,userPicture5});
double similarity1 = ImageSimilarityUtils.calculateFaceSimilarity(img1, img2);
System.out.println("人脸相似度: " + similarity1);
System.out.println("考勤匹配: " + ImageSimilarityUtils.isFaceMatchForAttendance(img1, img2));
for (String key : map.keySet()) {
String[] strings = map.get(key);
String img1 = strings[0];
String img2 = strings[1];
double similarity1 = ImageSimilarityUtils.calculateFaceSimilarity(img1, img2);
System.out.printf(key+":%f%n",similarity1);
}
// String img1=userPicture1;
// String img2=userPicture2;
// System.out.println("\n测试1:不同人的不同照片");
// System.out.println("照片2: " + img1);
// System.out.println("照片5: " + img2);
//
// double similarity1 = ImageSimilarityUtils.calculateFaceSimilarity(img1, img2);
// System.out.println("人脸相似度: " + similarity1);
// System.out.println("考勤匹配: " + ImageSimilarityUtils.isFaceMatchForAttendance(img1, img2));
// System.out.println("\n测试2同一个人的另一组照片");
// System.out.println("照片1: " + userPicture1);