所以我只想使用谷歌云视觉应用编程接口从图像中检测文本或标签。但是当我运行这段代码时,我总是得到:com.google.api.client.googleapis.json.GoogleJson响应异常: 400错误请求
但我不知道为什么。。。下面是我得到的完整json输出:
{
"code": 400,
"errors": [
{
"domain": "global",
"message": "Request Admission Denied.",
"reason": "badRequest"
}
],
"message": "Request Admission Denied.",
"status": "INVALID_ARGUMENT"
}
我的测试代码如下:
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.vision.v1.Vision;
import com.google.api.services.vision.v1.VisionRequestInitializer;
import com.google.api.services.vision.v1.model.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class GoogleDetection extends Detector {
private static final String CLOUD_VISION_API_KEY = "MY_API_KEY";
@Override
String detect(String filePath) {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
Vision.Builder builder = new Vision.Builder(httpTransport, jsonFactory, null);
builder.setVisionRequestInitializer(new
VisionRequestInitializer(CLOUD_VISION_API_KEY));
Vision vision = builder.build();
BatchAnnotateImagesRequest batchAnnotateImagesRequest =
new BatchAnnotateImagesRequest();
batchAnnotateImagesRequest.setRequests(new ArrayList<AnnotateImageRequest>() {{
AnnotateImageRequest annotateImageRequest = new AnnotateImageRequest();
// Image to bytes
Image base64EncodedImage = new Image();
BufferedImage bufferedImage = null;
File imgPath = new File(filePath);
try {
bufferedImage = ImageIO.read(imgPath);
} catch (IOException e) {
e.printStackTrace();
}
WritableRaster raster = bufferedImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
byte[] imageBytes = data.getData();
// Base64 encode the JPEG
base64EncodedImage.encodeContent(imageBytes);
annotateImageRequest.setImage(base64EncodedImage);
// add the features we want
annotateImageRequest.setFeatures(new ArrayList<Feature>() {{
Feature labelDetection = new Feature();
labelDetection.setType("LABEL_DETECTION");
labelDetection.setMaxResults(10);
add(labelDetection);
}});
// Add the list of one thing to the request
add(annotateImageRequest);
}});
Vision.Images.Annotate annotateRequest;
BatchAnnotateImagesResponse response = null;
try {
annotateRequest = vision.images().annotate(batchAnnotateImagesRequest);
// Due to a bug: requests to Vision API containing large images fail when GZipped.
annotateRequest.setDisableGZipContent(true);
response = annotateRequest.execute();
System.out.println(response.toString());
} catch (IOException e) {
e.printStackTrace();
}
return convertResponseToString(response);
}
private String convertResponseToString(BatchAnnotateImagesResponse response) {
String message = "I found these things:\n\n";
List<EntityAnnotation> labels = response.getResponses().get(0).getLabelAnnotations();
if (labels != null) {
for (EntityAnnotation label : labels) {
message += String.format("%.3f: %s", label.getScore(), label.getDescription());
message += "\n";
}
} else {
message += "nothing";
}
return message;
}
}
所以问题是。。此代码有什么问题?
检查这个答案:https://stackoverflow.com/a/38131991/2734665图像最大文件大小为4MB,最大请求大小为8MB
问题内容: 当我尝试在代码中执行HQL时,发生以下异常。我在各个站点中进行了检查,发现antlr.2.7.6.jar shd位于类路径中。我在项目中检查了此内容,发现在我的Maven依赖项中存在该内容。因此,不应有任何此类问题。但是我仍然遇到这个问题。谁能在这方面帮助我。我在“ empList = getHibernateTemplate()。find(“来自Employee”);“行中收到此错误
这是我的项目结构:我有一个< code>xml文件,我需要在我的< code>junit测试用例中使用它,我不知道为什么我不能得到这个文件。 这是我的方法: 我总是得到相同的错误跟踪:
我是新来的Firebase存储。只是为了让我可以学习它,我试图上传图像从ImageView到Firebase存储。我的应用程序有一个按钮。当我点击按钮时,图像(从可绘制的)会显示在图像视图上,同时,图像应该在点击按钮后上传到Firebase存储。到目前为止,我已经在点击按钮时显示了图像,但是我无法将其上传到Firebase存储中。addOnFilureListener被调用(我正在检查哪一个是通过
我的代码是 此代码给出的输出为 以及如何打印所有组的开始和结束索引?
我有这个问题。我正在尝试连接到数据库并推送文本用户。当我打开文件时,我只会发现很多错误。您可以进一步查看错误和我的代码。仅供参考:我的数据库在MySQLi中 警告:mysqli::\uuuu construct():php\u network\u getaddresses:getaddrinfo失败:第3行的/www/webvol9/rj/fxgnq6r66hz6x2j/my domain/pub