Как рассчитать координаты x, y из значений ограничивающего прямоугольника - PullRequest
0 голосов
/ 04 марта 2020

Я хочу обрезать изображение, используя его координаты x, y, используя функцию BufferedImage.getSubimage (x, y, width, height) в java. Но у меня есть только ограничительная рамка изображения, чтобы обрезать его часть.

Как я могу получить координаты x, y из ограничительной рамки, используя java? Доступны ли какие-либо расчеты?

Я даю ограничивающие значения (xMin, yMin, xMax, yMax) (0,46476197,0,46967554,0,8502463,0,67080903) enter image description here

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Как я могу получить координаты x, y из ограничительной рамки, используя java? Доступны ли какие-либо вычисления?

Если ваши рассчитанные координаты ограничивающей рамки соответствуют фракциям изображения, вам сначала нужно будет рассчитать значения пикселей для xMin, xMax, yMin и yMax.

Используя их, легко вычислить необходимые параметры для функции BufferedImage.getSubimage(x,y,width,height).

x и y соответствуют верхнему левому углу ограничительной рамки, поэтому:

x = xMin и y = yMin

Ширина поля может быть рассчитана с использованием ширины изображения и вычитания длины левого пространства, ведущего к блоку, а также длины правого пространства, где заканчивается блок, поэтому вы можно вычислить его по формуле:

width = imageWidth - xMin - (imageWidth - xMax)

То же самое относится и к высоте, просто используйте вместо этого y-координаты:

height = imageHeight - yMin - (imageHeight - yMax)

0 голосов
/ 04 марта 2020
I am multiplying bounding box values with image width and height respectively to get its pixel values. 

int y1 = yMin * ImageHeight;
int x1 = xMin * ImageWidth;
int y2 = yMax * ImageHeight;
int x2 = xMax * ImageWidth;

And applied the values to below given formula

BufferedImage.getSubimage((int)x1, (int)y1, (x2-x1), (y2-y1));

Thanks gilbert for giving solution to get pixel values.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...