加快使用PixelGrabber的图像处理速度

时间:2014-01-09 10:37:10

标签: java image pixel

我正在编写一个程序,将图像划分为范围。在此域中将 16X16 矩阵。我使用 PixelGrabber 来获取像素。我已经使用for循环进行迭代,但它需要花费很多时间来处理。在java中,任何替代方案都可以减少这个时间。我需要更好的表现。我们是否可以使用任何收藏品?

我的代码是:

int[] pix = new int[16 * 16];
long start = System.nanoTime();
for (int i = 0; i < 512; i += 16) 
{
 for (int j = 0; j < 512; j += 16) 
 {
   PixelGrabber pg = new PixelGrabber(Im, i, j, 16, 16, pix, 0, 16);
   pg.grabPixels();
   makeStack(pix, i, j);
 }
}
long end = System.nanoTime();

1 个答案:

答案 0 :(得分:1)

你现在的问题是你不知道为什么它很慢。是的,它在上面的代码中的某处,但您无法告诉我们完全的位置。

您应该使用分析器来运行代码,以查看大部分时间的花费。

也就是说,对于图像处理,将整个图像转换为byte[]int[]数组然后直接处理它通常是最有用的。