期望LP_c_ubyte实例而不是memoryview

时间:2017-07-05 01:53:46

标签: python opencv ctypes

当我将图像数据发送到c功能时,出现错误

ctypes.ArgumentError: argument 2: <class 'TypeError'>: expected LP_c_ubyte instance instead of memoryview

我知道存在类型错误。

这是c ++函数的定义:

int cv_face_detect (
    ...
    const unsigned char *image,
    ...
)

并且使用c ++,我注意到c ++使用cv包发送图像数据

using namespace cv;

Mat m_image_mat;
m_image_mat = imread ( full_file_name );

cv_face_detect(..., m_image_mat.data, ...);

在python中,我设置了argtypes,并使用vc2发送图像数据

cv_face_detect.argtypes = (..., POINTER(c_ubyte), ...)

img = cv2.imread('1.jpg')
cv_face_detect(..., img.data, ...)

然后,出现了错误

我不知道如何将memoryview转换为const unsigned char *数据,我可以将图像数据发送到c函数

感谢

0 个答案:

没有答案