Готовься прямоугольник на изображении PNG - PullRequest
1 голос
/ 12 июня 2011

У меня есть изображение PNG, и я хочу, чтобы этот прямоугольник соответствовал видимому изображению на нем.

Вот мой пример изображения:

enter image description here

У меня естьразмер изображения больше, чем изображение внутри него.

Внешний прямоугольник - это реальная ширина и высота моего изображения.И я хочу, чтобы прямоугольник зависел от видимого изображения, такого как внутренний прямоугольник.

Я использую Java.Как я мог это сделать?

1 Ответ

1 голос
/ 12 июня 2011

Если вы хотите сделать это самостоятельно, моя идея такова:

Начиная с верхней части изображения:

  1. Отсканируйте верхнюю строку изображения и сосчитайте количествоотличные цвета.Вы можете определить «отличное» с небольшим количеством нечеткости.
  2. Если есть только один цвет, запомните этот цвет.В противном случае вы закончите на вершине.
  3. Отсканируйте следующую строку.Если он имеет только один цвет, и если этот цвет совпадает с цветом в верхней строке, перейдите к шагу 3.
  4. Все готово.Текущая строка является первой «соответствующей» строкой изображения.

Повторите вышеуказанные шаги для других границ изображения, и все готово.

Примечание. Чтобы иметь возможностьДля правильной проверки вашего алгоритма вы должны разбить всю задачу на несколько:

  1. Rectangle visibleRectangle(BufferedImage image);Это хороший интерфейс для автоматического тестирования.
  2. BufferedImage crop(BufferedImage image, Rectangle image);остальная часть работы, которая должна быть достаточно простой для программирования.
...