Обработка изображения - PullRequest
5 голосов
/ 29 марта 2011

Я хочу изменить значение пикселей в изображении, для которого мне нужно сохранить изображение в виде матрицы. Как я могу выполнить эту работу? Пожалуйста, руководство.

Ответы [ 4 ]

6 голосов
/ 29 марта 2011
BufferedImage image = ImageIO.read(..);
image.setRGB(x, y, rgb);

Проверьте документацию BufferedImage

0 голосов
/ 09 мая 2015
  • Изображение представляет собой двумерное представление данных (информация о пикселях)

  • 2D означает x & y направления. В случае изображения эти направления обычно обрабатываются как строки и столбцы

  • Чтобы изменить значение пикселя, мы должны получить его местоположение в этих строках и столбцах

  • Получение местоположения в пикселях похоже на то, как учитель класса обращается к неизвестному ученику с его положением сидя (например: 2-я скамья, 3-й человек)

  • Таким образом, мы должны обратиться к пикселю по его строкам и расположению столбца

0 голосов
/ 06 сентября 2013

Сначала прочитайте изображение в BufferedImage.

BufferedImage image = ImageIO.read(new File("..."));

Затем создайте матричную структуру в двумерном массиве и установите RGB:

for(int i = 0; i < image.getWidth(); i++){
   for(int j = 0; j < image.getHeight(); j++){
     image.setRGB(i, j, rgb);  
   } 
}
0 голосов
/ 03 сентября 2013

Использование image.setRGB чрезвычайно медленно.

Вы можете использовать Catalano Framework

Пример:

FastBitmap fb = new FastBitmap(bufferedImage);

int x = fb.getRed(0,0);

//If you prefer to retrieve the matrix you can do too.
int[][][] image = new int[fb.getHeight][fb.getWidth][3];
fb.toArrayRGB(image);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...