将图像转换为矩阵

时间:2013-04-18 19:14:58

标签: java image matrix

我正在尝试将简单图像转换为矩阵M * N,其中M和N是我图像的宽度和高度。 但在这一点上,我不明白解决这些步骤的最佳方法。

此刻有我的代码:

  public double[][] img2matriz(BufferedImage bi){
    double[][] C;
    for(int i=0;i<bi.getHeight();i++) 
    {
        for(int j=0;j<bi.getWidth();j++)
        {
            C[i][j]
        }
    }     
} 

在[i]和[j]中,我想分别放置矩阵RGB的值。

3 个答案:

答案 0 :(得分:2)

试试这个:

C[i][j] = bi.getRGB(i, j);

getRGB()方法返回一个整数,可以对其进行位掩码以为您提供单个组件。如果C是整数数组而不是双数,那将更合适。

答案 1 :(得分:0)

创建一个类:

    class RGB {
        private :
           float r;
           float g;
           float b;

            RGB(float rr , float gg , float bb) : r(rr) ,g(gg), b(bb){}
        public:
... member functions
    }

并将其用作对象数组。

答案 2 :(得分:0)

首先:初始化您的数组如下:

double[][] C = new double[bi.getHeight()][bi.getWidth()];

第二次:从您的图片中获取RGB并将其放入您的数组中,如下所示:

C[i][j] = bi.getRGB(i, j);

如果你想获得图片中的3个频道(RED-GREEN-BLUE):你可以这样做:

int red = (C[i][j]>> 16) & 0x000000FF;
int green = (C[i][j]>>8 ) & 0x000000FF;
int blue = (C[i][j]) & 0x000000FF;
相关问题