2016-05-12 6 views
0

Недавно я начал работать с изображениями в java. Я хочу внедрить базовую систему отслеживания движения на основе цветов (я знаю, что это будет не очень эффективно, но это просто для тестирования).Пройдите через каждый пиксель изображения

Прямо сейчас я хочу обработать изображение на Java. Я хочу удалить все цвета в RGB-изображении вместо одного или вместо диапазона цветов.

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

+0

Что вы нашли до сих пор? –

ответ

1

С BufferedImage (стандартный класс изображения в java) у вас есть два «хороших» решения для доступа к пикселям.

1 - Использование растра проще, потому что оно автоматически обрабатывает кодировку, но работает медленнее.

WritableRaster wr = image.getRaster() ; 
for (int y=0, nb=0 ; y < image.getHeight() ; y++) 
    for (int x=0 ; x < image.getWidth() ; x++, nb++) 
     { 
     int r = wr.getSample(x, y, 0) ; // You just give the channel number, no need to handle the encoding. 
     int g = wr.getSample(x, y, 1) ; 
     int b = wr.getSample(x, y, 2) ; 
     } 

2 - Использование DataBuffer, быстро, потому что прямой доступ к пикселям, но вы должны обрабатывать кодировку.

switch (image.getType()) 
    { 
    case BufferedImage.TYPE_3BYTE_BGR : // Classical color images encoding. 
     byte[] bb = ((DataBufferByte)image.getRaster().getDataBuffer()).getData() ; 
     for (int y=0, pos=0 ; y < image.getHeight() ; y++) 
      for (int x=0 ; x < image.getWidth() ; x++, pos+=3) 
       { 
       int b = bb[pos] & 0xFF ; 
       int g = bb[pos+1] & 0xFF ; 
       int r = bb[pos+2] & 0xFF ; 
       } 
     break ; 
    } 

getRGB() легко, но намного медленнее и не проще, чем растровый, поэтому просто запретите его.

0

В случае, если вы передумали и рассмотреть возможность использования некоторой обработки изображений библиотеки:

движения Регионы
http://marvinproject.sourceforge.net/en/examples/motionRegions.html http://marvinproject.sourceforge.net/images/examples/motionRegions.jpg

понг игры
http://marvinproject.sourceforge.net/en/examples/pongGame.html
http://marvinproject.sourceforge.net/images/examples/pong_thumb.jpg

Смежные вопросы