py4j

1、java端

package com.bd;
import py4j.GatewayServer;
import com.arcsoft.face.FaceFeature;

public class FaceMain {
    public Double getFeature(String path1, String path2){
        MyEntryPoint my = new MyEntryPoint();
        my.init();
        FaceFeature faceFeature = my.getInfo(path1);
        FaceFeature faceFeature2 = my.getInfo(path2);
        Double compareResult = my.compareFeature(faceFeature, faceFeature2);
        return compareResult;
    }


    public static void main(String[] args) {
        FaceMain app = new FaceMain();
        // py4j服务
        GatewayServer gatewayServer = new GatewayServer(app);

        gatewayServer.start();
        System.out.println("Gateway Server Started");
    }
}

2、python端

from py4j.java_gateway import JavaGateway

# 初始化


class CompareAvatar:
    def __init__(self, path):
        self.path = path

    def get_compare(self):
        gateway = JavaGateway()
        path1 = "D:\img\a.jpg"
        path2 = "D:\img\b.jpg"
        path3 = "D:\img\c.jpg"
        path4 = "D:\img\d.jpg"
        path_lst = [path1, path2, path3, path4]
        compare_lst =[]
        for path in path_lst:
            compare_res = gateway.entry_point.getFeature(self.path, path)
            compare_lst.append(compare_res)
        max_index = compare_lst.index(max(compare_lst))
        return path_lst[max_index]


if __name__ == '__main__':
    path = "D:\img\a.jpg"
    compare_avatar = CompareAvatar(path)
    res = compare_avatar.get_compare()
    print(res)
原文地址:https://www.cnblogs.com/wt7018/p/13283460.html