2014-10-08 57 views
0

这绝对是一个简单的问题,但我有一个心理障碍,不能把两个和两个放在一起。将C++ opencv移植到Python - 遇到数组问题

我想转换此:

cv::Point2f p[4]; 

到一个python等效。现在我正在使用:

q = [(0,0)]*4 

这是正确的吗?或者我需要模仿结构?

这似乎在与存储点的通常惯例兼容方面beworking,但进出口运行到这个错误“的新风格getargs格式,但参数是不是一个元组”

+0

你运行你的代码,并检查列表'q'? – 2014-10-09 03:21:54

回答

1

似乎new style getargs format but argument is not a tuple的是,发生错误当库期望一个元组时传递一个数字或其他对象。所以我打赌你在其他地方有一个bug,与这个结构无关。

+0

是啊它只是混淆调试,但事实证明,我需要的元组嵌套 – 2014-10-09 06:37:40

0

OK愚蠢的答案,如果有人不知道要寻找什么,点数据是嵌套的q

q = [(0,0)]*4 
q[0] = corners[0] 
q[0][0] is needed to reference data pulled from here 

每个数组元素中创建点寻找这个没有调试一个小时:(q[0][0][0] , q[0][0][1])

编辑:这是拙劣的形式,我觉得以下是清洁

q = corners[[idx0, idx1, idx2, ...]] # for q of size 1xN where N = length(corners)