Дело в том, что библиотека обнаруживает слова на оригинале bitmap
, который вы прошли (с его исходной шириной и высотой), а затем возвращает местоположение слов в соответствии с этим изображением.Но изображение, показанное на экране, является масштабированным изображением с новой шириной и высотой, чтобы соответствовать экрану или imageView
.Итак, что вы хотите сделать, это изменить масштаб bitmap
в соответствии с вашим imageView
и затем передать новый bitmap
//get the scaled bitmap image with the new width and height showed on the screen
private Bitmap getScaledBitmap (Bitmap bitmapImage){
//width and height of original image
final int imageWidth = bitmapImage.getWidth();
final int imageHeight = bitmapImage.getHeight();
//width and height of the imageView
final int imageViewWidth = mImageView.getMeasuredWidth();
final int imageViewHeight = mImageView.getMeasuredHeight();
final int scaledWidth , scaledHeight;
if (imageWidth*imageViewHeight <= imageHeight*imageViewWidth) {
//rescaled width and height of image within ImageView
scaledWidth = (imageWidth*imageViewHeight)/imageHeight;
scaledHeight = imageViewHeight;
}
else {
//rescaled width and height of image within ImageView
scaledWidth = imageViewWidth;
scaledHeight = (imageHeight*imageViewWidth)/imageWidth;
}
return Bitmap.createScaledBitmap(bitmapImage, scaledWidth, scaledHeight, true);
}
Я использовал этот ответ для масштабирования изображения: https://stackoverflow.com/a/13318469/9242141
Редактировать: Извините, я заметил, что вы не используете растровые изображения в вашем коде, и в вашем случае все может быть немного по-другому, но я думаю, что вы можете найти решение на основена этой идее, поскольку я столкнулся с той же проблемой, что и вы, и это отлично сработало для меня.