0
有關如何將Mat轉換爲OpenCV中的整數數組的任何建議。我試過的建議,一個從http://answers.opencv.org/question/33596/convert-mat-to-byte-in-c/ 但它給我下面的錯誤:「java.lang.UnsupportedOperationException:墊數據類型不兼容:24」 請讓我知道,如果我錯了,在這裏做一些事情。 這裏是我下面的代碼:如何將Mat轉換爲OpenCV java中的Interger數組?
public void onCameraViewStarted(int width, int height) {
mRgba = new Mat(width, height, CvType.CV_32SC4);
mYuv = new Mat(width,height,CvType.CV_8SC4);
}
public void onCameraViewStopped() {
mRgba.release();
mYuv.release();
}
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
mRgba = inputFrame.rgba();
Imgproc.cvtColor(mRgba,mYuv,Imgproc.COLOR_RGBA2YUV_IYUV);
int[] rgba = new int[(int)(mRgba.total()*mRgba.channels())];
mRgba.get(0,0,rgba);
byte[] yuv = new byte[(int)(mYuv.total()*mYuv.channels())];
mYuv.get(0,0,yuv);
FindFeatures(mRgba.width(),mRgba.height(),yuv,rgba);
return mRgba;
}
,當我嘗試使用這段代碼轉換:
MatOfInt r = new MatOfInt();
mRgba.assignTo(r);
int[] rgba = r.toArray();
MatOfByte y = new MatOfByte();
mYuv.assignTo(y);
byte[] yuv = y.toArray();
我得到這個錯誤:「了java.lang.RuntimeException:母語墊具有意想不到的類型或尺寸:無光澤[480 * 640 * CV_8UC4,isCont =真,isSubmat =假,nativeObj = 0x7ffc35926ca0,DATAADDR = 0x7ffc35a09010]」