我正在基于Opencv4android SDK教程2-混合处理开发一个Android OpenCV应用程序。

在帧处理函数public Mat onCameraFrame(CvCameraViewFrame inputFrame) {}

框架是RGBA,我想通过以下方法制作RGB:

 mRgba = inputFrame.rgba();
 mGray = inputFrame.gray();

 Mat    mRgb=new Mat(640,480,CvType.CV_8UC3);
 mRgba.convertTo(mRgb, CvType.CV_8UC3);
 //Imgproc.cvtColor(mRgba, mRgb, CvType.CV_8UC3);
 PinkImage(mRgb.dataAddr());

但是,当我调试并记录传递给JNI部分的内容时,我发现它根本无法正常工作。
即使调用mRgbCV_8UC4也是converto()
是什么原因造成的?

最佳答案

好,答案是here

Imgproc.cvtColor(mRgba,mRgb,Imgproc.COLOR_RGBA2RGB);

代替
mRgba.convertTo(mRgb, CvType.CV_8UC3);

非常感谢!!

08-26 07:16