OpenCVのHoughLinesP( )関数の戻り値が三次元配列である事に気付いてから列を抽出するまでけっこうかなりすごく悩んだので覚え書きしておきます。
ハフ変換の戻り値 X(抜粋)
[[[249 138 400 138]]
[[405 139 400 60]]
[[404 230 404 61]]
[[418 137 486 137]]]
目的は、ここからy軸の値(1, 3列目)だけ抽出すること。
抽出したい値
[[138 138]
[139 60]
[230 61]
[137 137]]
【参考にさせてもらったURL】
[Python]Numpyの参照、抽出、結合
…を参照して、X[:, [1, 3]]としてみた。
print X[:, [1, 3]]
#結果
index 1 is out of bounds for axis 1 with size 1
「要素 1 は範囲外でござい」エラー。
…までは理解できた。
print X[0][:, [1, 3]]
#結果
[[138 138]]
ここから混乱。
リストと配列の違いを飲み込めていなかったのが原因。
解決
X[:, 0][:, 1, 3]
#または
X[0, :][:, 1, 3]
#結果
[[138 138]
[139 60]
[230 61]
[137 137]]
こう、まとめてみると何のことはないのだが、妙に行き詰まったのでした。
空階層(空次元?)でもあくまで配列として扱わないといけなかった、という話。