Отображение изображения из данных 2D-массива в Java - PullRequest
5 голосов
/ 27 октября 2011

У меня есть некоторые данные, которые загружаются из текстового файла, который соответствует моему файлу изображения.эти данные теперь находятся в 2D массиве.Я хочу показать это изображение.по-видимому, изображение показывает формат буферизованного изображения.но у меня это просто 2D двойной формат.Кроме того, как можно изменить размер изображения, то есть сделать его в два раза больше (конечно, требуя интерполяции между ними)

Другими словами, как мы можем сделать эквивалентные Matlab "imshow" и "imresize" в Java?

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

В Java нет простого метода преобразования матрицы интенсивности на основе массива в визуализируемое изображение, по крайней мере, я не знаю об этом.Также не существует простого однострочного метода для отображения изображения на экране и т. Д.

Однако правильно, что BufferedImage будет жизнеспособным решением в этом случае.Что вам нужно сделать, это создать BufferedImage нужного размера, а затем перебрать вашу 2D-матрицу интенсивности и заполнить цвета в результирующем изображении.

Когда у вас есть данные в виде BufferedImage, вы можете использовать их непосредственно для рендеринга.Например, вы можете создать JFrame с пользовательским компонентом JPanel для отображения изображения.Следующий пример кода иллюстрирует эту процедуру: (Обратите внимание, что это предполагает, что данные вашего изображения в двумерном массиве масштабируются так, чтобы соответствовать интервалу [0,1]. Если это не так, их придется масштабировать до заполненияв BufferedImage)Пример показывает при отображении / рендеринге изображения.(Конечно, это можно сделать непосредственно в BufferedImage, а также аналогичным образом.

1 голос
/ 29 ноября 2012

Посмотрите на MemoryImageSource .Он может не выполнять то, что вам нужно (потому что Java имеет тенденцию использовать int / byte для данных изображения), но он по крайней мере отправит вас по правильному маршруту.

http://www.javaworld.com/javatips/jw-javatip16.html

...