我最近开始研究 OpenCv4Android。我能够成功运行给定的图像操作示例。我想将 RGB 图像转换为 HSV 作为测试练习。我已经在 C++(WINDOWS)上完成了 OpenCv,并且也知道基本功能。
因此 cvtcolor 函数采用以下参数:
cvtcolor(mat src,mat dst,Imgproc.COLOR_TRANSFORMATION_TYPE,Number of Channels);
我尝试了不同的方法来检查输出,但我只得到了作为 LIVE CAMERA 视图的 cameraPreview。注意:Canny 等其他功能仍然有效(显示输出)。
我也怀疑是否有必要为此目的使用 JNI 即 NDK,或者大多数使用 OPENCV 库的应用程序可以在 main_activity.java 中完成(编写)并编译吗?
我是 OpenCv4Android 的入门者。对不起,如果我描述过度,欢迎提出所有建议。谢谢你。
//METHOD 1
case ImageManipulationsActivity.VIEW_MODE_HSV:
rgba=inputFrame.rgba();
rgbaInnerWindow = rgba.submat(top, top + height, left, left + width);
Imgproc.cvtColor(rgba, mIntermediateMat, Imgproc.COLOR_RGB2HSV_FULL);
Imgproc.cvtColor(mIntermediateMat, rgbaInnerWindow, Imgproc.COLOR_HSV2RGB_FULL);
rgbaInnerWindow.release();
break;
//METHOD 2
case ImageManipulationsActivity.VIEW_MODE_HSV:
Mat hsv= null;
// rgba=inputFrame.rgba();
// rgbaInnerWindow = rgba.submat(top, top + height, left, left + width);
Imgproc.cvtColor(rgbaInnerWindow, mIntermediateMat, Imgproc.COLOR_RGBA2RGB);
Imgproc.cvtColor(mIntermediateMat, hsv, Imgproc.COLOR_RGB2HSV_FULL);
Imgproc.cvtColor(hsv, rgbaInnerWindow, Imgproc.COLOR_HSV2RGB_FULL);
rgbaInnerWindow.release();
break;
//METHOD 3
case ImageManipulationsActivity.VIEW_MODE_HSV:
rgbaInnerWindow = rgba.submat(top, top + height, left, left + width);
Imgproc.cvtColor(rgbaInnerWindow, rgbaInnerWindow, Imgproc.COLOR_HSV2RGB_FULL);
rgbaInnerWindow.release();
break;