list(contour)
上記のmathically.coffeeによる回答に基づいて、輪郭について理解するために、の出力についてさらにいくつかの作業を行いました。
1)テスト画像を間違えました。バイナリ画像だと思いましたが、実際は他の色のグレースケール画像でもありました。(mathically.coffeeに感謝します)。そこで、画像を純粋な白黒のみの画像に変更して、輪郭を1つだけ取得し、再度テストしました。今回list(contour)
は、4つの値の結果が得られました。これらの値は、画像に描画すると、そのボックスの4つの角になります。

したがって、「cv.DrawContours」関数を使用すると、これらすべての頂点を結ぶ線が描画されます。そこで、cv.FindContoursが、実際にはポリゴンである輪郭の頂点の位置を格納していると仮定しました。
2)もう一度テストするために、T字型の別の画像を撮りました。

このために、Tの8つのコーナーである8つの値のリストを期待します。

`list(contour)'は、10個の値を含む次のリストを出力します。(2つの余分な値は、私の図面のエラーが原因である可能性があります)
[(92, 58), (92, 108), (174, 108), (175, 109), (175, 239), (225, 239), (225, 109), (226, 108), (285, 108), (285, 58)]
これは、cv.FindContoursがcvseqオブジェクトを作成することを意味します。その中に私が上で仮定したように値を保存します。
3)上記の例では、輪郭が1つだけ見つかります。複数の輪郭が見つかった場合の状態はどうなりますか?数学.coffeeで説明されているように、複数のリンクされたシーケンスの概念を明確に理解していませんでした。それをテストするために、私は3番目の画像を撮りました。

これで、cv.FindContoursは3つの輪郭を検索します。各輪郭はボックスの4つの角のリストであることを忘れないでください。これらの3つのリストは、単一のcvseqオブジェクトに格納され、ポインタは最初の輪郭のみ、つまり最初のボックスの頂点のリストのみを指します。したがって、上記のコードでは、1つのボックスのコーナーのみが描画されます。
2番目の頂点のリストを取得するには、contour.h_next関数を使用します(mathically.coffeeのおかげで、今までその関数を知りませんでした)。これで、2番目のボックスの輪郭を指します。したがって、その中のすべてのリストを繰り返し処理します。
そこで、次のように単純なwhileループを追加しました。
while contours:
print list(contours)
for i in list(contours):
cv.Circle(img,i,5,(0,0,255),3)
contours = contours.h_next()
そして、私は3つのボックスのコーナーに対応する3つのリストを取得しました。
[(196, 237), (196, 279), (357, 279), (357, 237)]
[(141, 136), (141, 201), (346, 201), (346, 136)]
[(33, 39), (33, 92), (206, 92), (206, 39)]
そして出力画像:

したがって、「頂点の数が多い」円の出力が期待できます。
さて、今はすべてが簡単です。等高線の値がわかりませんでした。だから、このすべての混乱。ありがとう。
更新-1:
cv2
新しいモジュールの輪郭の詳細については、こちらをご覧ください:輪郭-1:はじめに
更新-2:
これらの説明はすべて、cv2.CHAIN_APPROX_SIMPLEに関して正しいものです。ただし、代わりにcv2.CHAIN_APPROX_NONEを使用すると、輪郭上のすべてのポイントが取得されます。この記事の例で詳細に説明されています:輪郭-5:階層