Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android JavaCV将整型数组转换为灰色矩阵_Android_Opencv_Javacv_Yuv - Fatal编程技术网

Android JavaCV将整型数组转换为灰色矩阵

Android JavaCV将整型数组转换为灰色矩阵,android,opencv,javacv,yuv,Android,Opencv,Javacv,Yuv,我正在尝试在Android上使用JavaCV做最基本的事情,但仍然失败 我想将从Camera.PreviewCallback OnPreview接收的yuv字节[]数组转换为灰度矩阵,以便进一步处理 public void onPreviewFrame(byte[] data, Camera camera) { /* Extract grayscale from yuv */ ByteBuffer gray = ByteBuffer.allocate(data.length * 4);

我正在尝试在Android上使用JavaCV做最基本的事情,但仍然失败

我想将从Camera.PreviewCallback OnPreview接收的yuv字节[]数组转换为灰度矩阵,以便进一步处理

public void onPreviewFrame(byte[] data, Camera camera) {

  /* Extract grayscale from yuv */
  ByteBuffer gray = ByteBuffer.allocate(data.length * 4);
  IntBuffer intBuffer = gray.asIntBuffer();

  int p;
  int size = width*height;
  for(int i = 0; i < size; i++) {
        p = data[i] & 0xFF;
        intBuffer.put(0xff000000 | p<<16 | p<<8 | p);
  }

  Mat g = new Mat(height,width,CV_8UC3);
  byte test[] = gray.array();
  g.data().put(test);  /* crashes here */
public void onPreviewFrame(字节[]数据,摄像头){
/*从yuv中提取灰度*/
ByteBuffer gray=ByteBuffer.allocate(data.length*4);
IntBuffer IntBuffer=gray.asIntBuffer();
INTP;
整数大小=宽度*高度;
对于(int i=0;iintBuffer.put(0xff000000 | pdid)您验证高度、宽度和通道(3)的乘积=字节数组(测试)长度?它们不相同。但我不知道如何使它们相同。