计算机视觉快速入门不适用于 Java

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

我是计算机视觉新手,我正在尝试实现以下内容(示例),但它总是向我发送相同的错误:

出了点问题:无法从 作业地点

/**
 * OCR with READ : Performs a Read Operation on a local image
 * @param client instantiated vision client
 * @param localFilePath local file path from which to perform the read operation against
 */
private static void ReadFromFile(ComputerVisionClient client) {
    System.out.println("-----------------------------------------------");
    
    String localFilePath = "C:\\main\\resources\\file.pdf";
    System.out.println("Read with local file: " + localFilePath);


    try {
        File rawImage = new File(localFilePath);
        byte[] localImageBytes = Files.readAllBytes(rawImage.toPath());

        // Cast Computer Vision to its implementation to expose the required methods
        ComputerVisionImpl vision = (ComputerVisionImpl) client.computerVision();

        // Read in remote image and response header
        ReadInStreamHeaders responseHeader =
                vision.readInStreamWithServiceResponseAsync(localImageBytes, null, null)
                    .toBlocking()
                    .single()
                    .headers();
   
        String operationLocation = responseHeader.operationLocation();
        System.out.println("Operation Location:" + operationLocation);

        getAndPrintReadResult(vision, operationLocation);

    } catch (Exception e) {
        System.out.println(e.getMessage());
        e.printStackTrace();
    }
}
/**
 * Polls for Read result and prints results to console
 * @param vision Computer Vision instance
 * @return operationLocation returned in the POST Read response header
 */
private static void getAndPrintReadResult(ComputerVision vision, String operationLocation) throws InterruptedException {
    System.out.println("Polling for Read results ...");

    // Extract OperationId from Operation Location
    String operationId = extractOperationIdFromOpLocation(operationLocation);

    boolean pollForResult = true;
    ReadOperationResult readResults = null;

    while (pollForResult) {
        // Poll for result every second
        Thread.sleep(1000);
        readResults = vision.getReadResult(UUID.fromString(operationId));

        // The results will no longer be null when the service has finished processing the request.
        if (readResults != null) {
            // Get request status
            OperationStatusCodes status = readResults.status();

            if (status == OperationStatusCodes.FAILED || status == OperationStatusCodes.SUCCEEDED) {
                pollForResult = false;
            }
        }
    }
  
    // Print read results, page per page
    for (ReadResult pageResult : readResults.analyzeResult().readResults()) {
        System.out.println("");
        System.out.println("Printing Read results for page " + pageResult.page());
        StringBuilder builder = new StringBuilder();

        for (Line line : pageResult.lines()) {
            builder.append(line.text());
            builder.append("\n");
        }

        System.out.println(builder.toString());
    }
}


//The error marks it in this method since it cannot extract the operation id


 /**
 * Extracts the OperationId from a Operation-Location returned by the POST Read operation
 * @param operationLocation
 * @return operationId
 */
private static String extractOperationIdFromOpLocation(String operationLocation) {
    if (operationLocation != null && !operationLocation.isEmpty()) {
        String[] splits = operationLocation.split("/");

        if (splits != null && splits.length > 0) {
            return splits[splits.length - 1];
        }
    }
    throw new IllegalStateException("Something went wrong: Couldn't extract the operation id from the operation location");
}
  

如果您能帮我看看我的错误是什么或我做错了什么。

java azure computer-vision
2个回答
0
投票

您似乎只遵循了快速入门的一部分。在此之前,您还应该设置环境并设置您的主要方法、订阅 ID 和密钥。请遵循整个文档:https://learn.microsoft.com/en-us/azure/cognitive-services/computer-vision/quickstarts-sdk/client-library?tabs=visual-studio&pivots=programming-language-java


0
投票

我也面临同样的问题。你能解决这个问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.