2014-10-08 93 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)