如何在numba预编译函数中使用struct.unpack

问题描述

我有一个用 numba 编写的函数来为 pcl_viewer 生成 3d 点云数据。为了将 rgb 值转换为 pcl_viewer 要求的编码浮点格式,我使用以下代码

@njit
def rgb2float(r,g,b):
    rgb_value = (int(r) << 16) + (int(g) << 8) + int(b)
    return struct.unpack('!f',struct.pack('!I',rgb_value))[0]

@njit(parallel=True)
def get_rgb_points(points,view_matrices,img_dict):
    for i in prange(len(points)):
        ... some code
        points[i][4] = rgb2float(color[0],color[1],color[2])
        
    return points

但是,当从我的主要 numba 优化函数调用函数时,出现以下错误

TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Failed in nopython mode pipeline (step: nopython frontend)
UnkNown attribute 'unpack' of type Module(<module 'struct' from '/usr/lib/python3.6/struct.py'>)

为了检查它是否是python版本问题,我检查了python3.6的struct.py,但我在那里找到了解包功能。所以我认为这不是python版本问题。我还尝试将“rgb2float”函数的“nopython”设置为True和False。

是否可以在 numba 函数中使用 struct.unpack?如果没有,我可以使用替代方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...