Search in sources :

Example 1 with TextLine

use of org.opencastproject.textextractor.api.TextLine in project opencast by opencast.

the class TextAnalyzerServiceImpl method analyze.

/**
 * Returns the video text element for the given image.
 *
 * @param imageFile
 *          the image
 * @param id
 *          the video text id
 * @return the video text found on the image
 * @throws TextAnalyzerException
 *           if accessing the image fails
 */
protected VideoText[] analyze(File imageFile, String id) throws TextAnalyzerException {
    /* Call the text extractor implementation to extract the text from the
     * provided image file */
    List<VideoText> videoTexts = new ArrayList<VideoText>();
    TextFrame textFrame = null;
    try {
        textFrame = textExtractor.extract(imageFile);
    } catch (IOException e) {
        logger.warn("Error reading image file {}: {}", imageFile, e.getMessage());
        throw new TextAnalyzerException(e);
    } catch (TextExtractorException e) {
        logger.warn("Error extracting text from {}: {}", imageFile, e.getMessage());
        throw new TextAnalyzerException(e);
    }
    /* Get detected text as raw string */
    int i = 1;
    for (TextLine line : textFrame.getLines()) {
        if (line.getText() != null) {
            VideoText videoText = new VideoTextImpl(id + "-" + i++);
            videoText.setBoundary(line.getBoundaries());
            Textual text = dictionaryService.cleanUpText(line.getText());
            if (text != null) {
                videoText.setText(text);
                videoTexts.add(videoText);
            }
        }
    }
    return videoTexts.toArray(new VideoText[videoTexts.size()]);
}
Also used : TextAnalyzerException(org.opencastproject.textanalyzer.api.TextAnalyzerException) TextLine(org.opencastproject.textextractor.api.TextLine) Textual(org.opencastproject.metadata.mpeg7.Textual) TextExtractorException(org.opencastproject.textextractor.api.TextExtractorException) VideoTextImpl(org.opencastproject.metadata.mpeg7.VideoTextImpl) ArrayList(java.util.ArrayList) TextFrame(org.opencastproject.textextractor.api.TextFrame) IOException(java.io.IOException) VideoText(org.opencastproject.metadata.mpeg7.VideoText)

Aggregations

IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Textual (org.opencastproject.metadata.mpeg7.Textual)1 VideoText (org.opencastproject.metadata.mpeg7.VideoText)1 VideoTextImpl (org.opencastproject.metadata.mpeg7.VideoTextImpl)1 TextAnalyzerException (org.opencastproject.textanalyzer.api.TextAnalyzerException)1 TextExtractorException (org.opencastproject.textextractor.api.TextExtractorException)1 TextFrame (org.opencastproject.textextractor.api.TextFrame)1 TextLine (org.opencastproject.textextractor.api.TextLine)1