如何在Javacv中将IplImage读入双数组

时间:2014-11-15 19:09:10

标签: java javacv iplimage

我做了这个,但得到了奇怪的答案。不知道为什么会这样?同样的方式我使用CvMat读取而不转换为此。然后我得到了不同的答案。

    CvMat kernel=CvMat.create(3,3,CV_32F);
    kernel.put(1,1,5);
    kernel.put(0,1,-1);
    kernel.put(2,1,-1);
    kernel.put(1,0,-1);
    kernel.put(1,2,-1);
    kernel.put(0,0,0);
    kernel.put(2,2,0);
    kernel.put(0,2,0);
    kernel.put(2,0,0);
    IplImage buffer1=kernel.asIplImage();
    ByteBuffer buffer =buffer1.getByteBuffer();
    int cols=buffer1.width();
    int rows=buffer1.height();
    double img_vec[][] = new double[rows][cols];
    System.out.println("rows:"+rows+"   coloums:"+cols);

     for (int i=0; i < rows; i++) {
        for (int j =0; j < cols; j++){
            int ind = i * buffer1.widthStep() + j * buffer1.nChannels() + 1;
            img_vec[i][j] = (buffer.get(ind) & 0xFF);
            System.out.println(img_vec[i][j]);
         }
    }

0 个答案:

没有答案