优化相似度算法

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> <lowagie.iTextAsian.version>1.0</lowagie.iTextAsian.version>
<itextpdf.version>5.5.13</itextpdf.version> <itextpdf.version>5.5.13</itextpdf.version>
<aspose.words.version>15.8.0</aspose.words.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> </properties>
<!-- 依赖声明 --> <!-- 依赖声明 -->

View File

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