android - Mat::convertto() 不适用于 javacv、android 相机

标签 android opencv javacv

我正在开发一个基于 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 部分的内容时,我发现它根本不起作用。 即使在调用 converto() 后,mRgb 仍为 CV_8UC4

这是什么原因造成的?

最佳答案

好的,答案是here

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

而不是

mRgba.convertTo(mRgb, CvType.CV_8UC3);

非常感谢!!

关于android - Mat::convertto() 不适用于 javacv、android 相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17856805/

相关文章:

android - 按下时如何突出显示按钮?

python - cv2.videocapture 不适用于 Raspberry-pi

windows - ucrtbase.dll : An invalid parameter was passed to a function that considers invalid parameters fatal

python - 如何从 findHomography 获取旋转角度?

opencv - IplImage 像素访问 JavaCV

java - Netbeans 中的 OpenCV 类路径

java - 使用 BaseAdapter 的 ListView 未显示在 Activity 中

java - 使用 MediaRecorder 流屏幕 react native

java - JavaCV 的 cvResize 函数

android - 在不拉伸(stretch)背景的情况下,在 ListView 上对齐两个 TextView,一左一右