来自Image的Python OpenCV cvCreateStructuringElementEx,shape = CV_SHAPE_CUSTOM

时间:2011-08-09 02:17:05

标签: python opencv

任何人都知道如何使用图片创建cvCreateStructuringElementEx? 我正在尝试使用opencv.cv.cvCreateStructuringElementEx(), 我的结构是bmp 160x120,黑色,半椭圆形白色。

im = Image.open("struture.jpeg", "r")
im = im.convert("1")
val = numpy.uint(im.getdata())
gim = opencv.cv.cvCreateStructuringElementEx(im.size[0], im.size[1], im.size[0]/2, im.size[1]/2, opencv.cv.CV_SHAPE_CUSTOM, val)

所以返回错误:

TypeError: in method 'cvCreateStructuringElementEx', argument 6 of type 'int *'

2 个答案:

答案 0 :(得分:1)

这可能会解决您的问题:

int val[9]={0,1,0,1,1,1,0,1,0};

答案 1 :(得分:0)

使用Python 2.7和OpenCV 2.3.0运行相同的指令并没有给我带来错误。它按预期返回了一个IplConvKernel。

我假设您正在使用较旧版本的OpenCV,因为您的函数使用旧的命名约定(即cvCreateStructureElementEx与CreateStructureElementEx)。过去,OpenCV在这里和Python包装器中都有一些错误 - 这可能就是其中之一。

您的环境是否可以将OpenCV更新为2.3.x?如果是这样,请确保您还使用Python 2.6或2.7 - 据我所知,这些是目前支持的唯一版本。

编辑: Hrm。刚看到这个日期。没意识到我回到那么远!哦,好吧,希望对某人有用。