無法遍歷包含數據點的數組

A.弗里斯維克

我有個問題。在我的 Python 程序中,我有以下代碼:

lines = []

for x in range(2):
    lines.append(probabilistic_hough_line(image, threshold=2, theta=tested_angles, line_length=0, line_gap=int(np.ceil(np.sqrt(np.square(image.shape[0]) + np.square(image.shape[1]))))))
    
print(lines)

現在這讓我返回:

[[((24, 143), (24, 143)), ((331, 873), (108, 360)), ((327, 909), (185, 551)), ((308, 1023), (122, 447)), ((292, 962), (292, 962)), ((240, 798), (240, 798)), ((215, 762), (215, 762)), ((72, 158), (72, 158)), ((17, 96), (17, 96)), ((223, 793), (151, 515)), ((175, 588), (175, 588)), ((11, 4), (11, 4)), ((129, 434), (129, 434)), ((345, 1038), (19, 100)), ((246, 801), (246, 801)), ((236, 749), (236, 749)), ((248, 824), (30, 143)), ((99, 180), (99, 180)), ((363, 1135), (361, 1131)), ((197, 597), (158, 503)), ((106, 365), (6, 64)), ((358, 1107), (142, 470)), ((139, 487), (139, 487)), ((45, 249), (45, 249)), ((205, 721), (90, 285)), ((317, 969), (21, 103)), ((124, 464), (124, 464)), ((329, 878), (329, 878)), ((348, 1043), (348, 1043)), ((194, 613), (194, 613)), ((238, 776), (76, 224)), ((221, 795), (221, 795)), ((97, 181), (97, 181)), ((112, 380), (112, 380)), ((48, 250), (48, 250)), ((179, 544), (179, 544)), ((117, 422), (70, 187)), ((277, 845), (277, 845)), ((135, 461), (135, 461)), ((217, 762), (217, 762)), ((9, 32), (9, 32)), ((32, 145), (32, 145)), ((34, 164), (34, 164)), ((244, 807), (244, 807)), ((155, 565), (155, 565)), ((225, 782), (225, 782)), ((209, 757), (209, 757)), ((231, 714), (231, 714)), ((337, 907), (337, 907)), ((119, 417), (119, 417)), ((250, 819), (250, 819)), ((284, 941), (284, 941)), ((147, 536), (147, 536)), ((299, 941), (299, 941)), ((305, 988), (287, 932)), ((42, 223), (42, 223)), ((268, 902), (268, 902)), ((322, 910), (322, 910)), ((270, 887), (270, 887)), ((260, 834), (260, 834)), ((289, 942), (289, 942)), ((56, 335), (56, 335)), ((211, 755), (168, 611)), ((183, 515), (183, 515)), ((273, 920), (273, 920)), ((104, 341), (104, 341)), ((4, 74), (4, 74))]]

然後我想遍歷所有的點,所以我有這個循環:

for (x0, y0), (x1, y1) in lines:

但這給了我錯誤:

ValueError: too many values to unpack (expected 2)

我希望這段代碼足以幫助我,但如果需要更多代碼,請看這裡我在此頁面中使用的所有代碼!有人可以幫助我在 for 循環中做錯了什麼嗎?

程序員

請注意打印輸出開頭和結尾的雙括號。您在列表中有一個列表,該內部列表包含您的元組對。

for 循環遍歷外部列表,它獲得的第一個(也是唯一一個)項目是內部列表。

現在,它試圖解開這個列表的項目為x0x1y1,和y2這使得四個變量分成兩對。因此,循環需要兩個元組,每個元組包含兩個值。

但是你給它更多的元組 - 請記住,它試圖從內部列表中解包,而不是從該內部列表中的每個元組中解包。

要解決此問題,請直接查看內部列表:

for (x0, y0), (x1, y1) in lines[0]:

或者,如果您不能確定外部列表中總是只有一個內部列表,請使用嵌套循環:

for line in lines:
    for (x0, y0), (x1, y1) in line:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章