将 C++ opencv 移植到 Python - 数组问题

Posted

技术标签:

【中文标题】将 C++ opencv 移植到 Python - 数组问题【英文标题】:Porting C++ opencv to Python - trouble with array 【发布时间】:2014-10-08 19:05:32 【问题描述】:

这绝对是一个简单的问题,但我有心理障碍,无法将两个和两个放在一起。

我想转换这个:

cv::Point2f p[4];

到 python 等价物。现在我正在使用:

q = [(0,0)]*4

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

这似乎与通常的存储点约定兼容,但是我遇到了这个错误“新样式 getargs 格式,但参数不是元组”

【问题讨论】:

你运行你的代码并检查列表q 【参考方案1】:

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

【讨论】:

是的,调试起来很混乱,但事实证明我需要的元组是嵌套的【参考方案2】:

好吧,愚蠢的回答,如果有人在不知道要查找什么的情况下再调试一个小时而不进行调试,则点数据嵌套在 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) 

【讨论】:

以上是关于将 C++ opencv 移植到 Python - 数组问题的主要内容,如果未能解决你的问题,请参考以下文章

将 python 代码移植到 C++ /(在 C++ 中打印出数组)

C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题

将经过训练的 SVM 从 scikit-learn 导入到 OpenCV

将 C++ 类移植到 PyQt

将 c++ opencv IplImage imageData 和 widthStep 转换为 android opencv Mat

C++ 原生 OpenCV 到 opencv4android 端口太慢?