在android studio中传递文件时出错

3xiyfsfu  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(183)

我正在尝试将一个文件从java传递到python。加载文件我用毕加索,因为我要得到宽度和高度。但是当我调用同一个文件将其传递给python时,它会给我一个错误。这是java代码:

Picasso.get().load(R.drawable.f21).into(new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {

                        imageString = getStringImage(bitmap);
                        iv.setImageBitmap(bitmap);

                        PyObject pyo = py.getModule("Heat");
                        PyObject obj = pyo.callAttr("Python", bitmap, lrange, urange);
                        String str = obj.toString();
                        byte data[] = android.util.Base64.decode(str, Base64.DEFAULT);

                        Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
                        iv2.setImageBitmap(bmp);

我得到的错误是:

com.chaquo.python.PyException: TypeError: Expected Ptr<cv::UMat> for argument '%s'
            at <python>Heat.Python(Heat.py:9)  
            at com.chaquo.python.PyObject.callAttr(PyObject.java:209)

但是当我尝试从drawable加载图像时,它并没有成功地传递到python脚本中。它不会显示任何错误,但会显示以下消息:

I/Choreographer: Skipped 129 frames!  The application may be doing too much work on its main thread.

如何将图像从java传递到python脚本。
我的python代码是:

import numpy as np
import cv2
import os
import matplotlib.pyplot as plt
from PIL import Image

def Python(croppedImage,lowerRange, upperRange):
    mask_yellow = cv2.inRange(croppedImage,lowerRange,upperRange)
    dilatation_type = cv2.MORPH_RECT

hMin = 1
sMin = 0
vMin = 0

hMax = 107
sMax = 38
vMax = 265

output = image
wait_time = 30
lower = np.array([hMin, sMin, vMin])
upper = np.array([hMax, sMax, vMax])
print(lower,upper)

 hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
 mask = cv2.inRange(hsv, lower, upper)

-----------------------------This is just a part of code---------------------------------

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题