我正在基于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部分的内容时,我发现它根本无法正常工作。
即使调用
mRgb
,CV_8UC4
也是converto()
是什么原因造成的?
最佳答案
好,答案是here
Imgproc.cvtColor(mRgba,mRgb,Imgproc.COLOR_RGBA2RGB);
代替
mRgba.convertTo(mRgb, CvType.CV_8UC3);
非常感谢!!