Библиотека сегментации изображений в Java [закрыто]


Я работаю над проектом, который состоит из процедуры " чтения диаграммы компьютером" Мне нужно будет выполнить сегментацию изображения, чтобы идентифицировать фигуры и их расположение во входном изображении. Мой профессор сказал, что я могу использовать для этого любую публичную библиотеку сегментации изображений. Существует ли хорошая библиотека сегментации изображений, которая может служить этой цели?

Большое Спасибо

1 3

1 ответ:

В JAVA, например, эти инструменты предоставляют множество алгоритмов для сегментации изображений:

ImageJ

Http://rsbweb.nih.gov/ij/

Фиджи

Http://fiji.sc/wiki/index.php/Fiji

Rapidminer IMMI

Http://www.burgsys.com/image-mining

Марвин Фреймворк

Http://marvinproject.sourceforge.net/


Дополнение

Даже будучи вообще, я думаю, что на этот вопрос можно ответить в некотором смысле. Поскольку этот вопрос закрыт, я дополню ответ @radim-burget для тех людей, которые приходят сюда в поисках простого примера сегментации изображений на Java.

Сегментация изображений является задачей обработки изображений и обрабатывается большинством фреймворков обработки изображений. В приведенном ниже примере я используюMarvin Framework .

Алгоритм сегментации элементов диаграммы:

  1. загрузить изображение и binarize
  2. Применить морфологическую эрозию для удаления строк, текстов и т. д.
  3. примените сегментацию заливки, чтобы получить сегменты
  4. Нарисуйте сегменты на исходном изображении.

Входные данные:

Введите описание изображения здесь

После Эрозии:

Введите описание изображения здесь

Результат:

Введите описание изображения здесь

Исходный Код:

import static marvin.MarvinPluginCollection.*;

public class SegmentDiagram {

    public SegmentDiagram(){
        MarvinImage originalImage = MarvinImageIO.loadImage("./res/diagram.png");
        MarvinImage image = originalImage.clone();
        MarvinImage binImage = MarvinColorModelConverter.rgbToBinary(image, 250);
        morphologicalErosion(binImage.clone(), binImage, MarvinMath.getTrueMatrix(5, 5));
        image = MarvinColorModelConverter.binaryToRgb(binImage);
        MarvinSegment[] segments = floodfillSegmentation(image);

        for(int i=1; i<segments.length; i++){
            MarvinSegment seg = segments[i];
            originalImage.drawRect(seg.x1, seg.y1, seg.width, seg.height, Color.red);
            originalImage.drawRect(seg.x1+1, seg.y1+1, seg.width, seg.height, Color.red);
        }
        MarvinImageIO.saveImage(originalImage, "./res/diagram_segmented.png");
    }

    public static void main(String[] args) {
        new SegmentDiagram();
    }
}

Распознавание формы-это еще одна тема, уже обсуждавшаяся в Stack Переполнение:

Алгоритм распознавания двумерных фигур-поиск ориентиров