如何将opencv材质转换为努比·恩达雷?

2024-03-28 12:41:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用java(android)编写的代码,可以打开手机的摄像头并显示画面。下面的代码代表我们可以检索帧的方法。该项目使用Chaquopy来解释python代码。在

 @Override
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

        mRgba = inputFrame.rgba();
        Python py = Python.getInstance();

        PyObject pym = (PyObject) 
        py.getModule("MyPythonClass").callAttr("call",mRgba);

        return mRgba;
    }

python代码用于检索帧(由java代码中的Mat“mRgba”表示)以进行进一步处理 问题是要找到一种解决方案,将此Mat转换为可以由python代码解释的类型:

^{2}$

“frame”应该是java代码检索并发送给函数“call”的Mat


Tags: 项目方法代码py代表javacallandroid
1条回答
网友
1楼 · 发布于 2024-03-28 12:41:01

我找到了一个解决方案,在java端将Mat转换为byteArray

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream);
        byteArray = byteArrayOutputStream .toByteArray();

在python端,检索到的byteArray被转换为PIL图像,然后转换为numpy数组:

^{pr2}$

希望能有所帮助。在

相关问题 更多 >