我尝试在python3.1上通过ctypes使用OpenCV,但是我不知道如何表示指针。例如,如果我想加载一个图像并打印她的第一个像素的内容,我将用C++编写:
#include <opencv/cv.h>
#include <opencv/highgui.h>
using namespace std;
int main() {
IplImage *img;
img = cvLoadImage("/home/foo/foo.png");
CvScalar pixel = cvGet2D(img, 20, 30);
printf(pixel)
return 0
}
但是在Python中,在ctypes上,我必须表示IplImage、CvScalar结构等等,而且我必须使用“指针”来实现这一点,例如:IplImage *img;
。在
但是怎么做呢?我试过了:
^{pr2}$但是我没有CvScalar结构(我不知道如何表示它),我使用了错误的指针ctypes,我有一个“segfault”错误。在
在opencv2.3中,
CvScalar
结构是封装在结构中的double[4]
,问题中显示的其他结构定义明显不同。此外,^ {CD3}}具有一个在C++中具有默认值的^ {< CD4}}参数。当用ctypes调用时,必须将其设置为CV_LOAD_IMAGE_*
常量之一。在为了测试,我使用了Debian repository中的2.3 OpenCV libs和以下4通道PNG:
^{pr2}$输出:
相关问题 更多 >
编程相关推荐