2017-07-12 18 views
0

は、私は(再び!)いくつかの問題を持っている:this documentationべきcanvas.coords()を正確に返すものは何ですか?

temporary = cv.create_text(a,b, text = "ip example", anchor = E) 
x,y = cv.coords(temporary) 
print(coords) 

リターンタプルに応じ(x1,y1,x2,y2) 悲しいことに、私は2点のだけの座標を取得:(例:(347.08203932499373, 320.5342302750968)を)。

何が問題になりましたか?

EDIT:

1)より正確には、この時点では、ドキュメントのP.23にある、.coordsは

2 @DeepSpace条)私はこの点を理解し、私は絶対に左上を必要とし、右下の頂点座標。 cv.coords()がこれらの値を返さない場合、どうすればそれらを見つけることができますか? @RonNorris

+0

"このドキュメント"より具体的にお考えですか? 「この文書」は168ページです。 – DeepSpace

+2

文書は座標について言う。 '座標の数はオブジェクトのタイプに依存する。ほとんどの場合、オブジェクトの境界ボックスを記述する4タプル(x1 、y1 、x2 、y2 )となります。経験則では、オブジェクト(オブジェクトのテキスト)を定義するために2つの座標が必要な場合は、コマンドが返す座標の数です。たとえば、四角形は4つの座標を返し、ポリゴンは作成された座標を返します。 –

+0

私の投稿を編集^^ –

答えて

2

何も問題ありませんでした。テキスト項目には2つの座標しかありません。

バウンディングボックスの座標をアイテムの座標ではなく探しているようです。境界ボックスは、アイテムを完全に囲む最小の長方形です。あなたがbbox方法とバウンディングボックスの座標を取得することができます:

すべてのおおよそのバウンディングボックスを与えて四つの要素でリストを返します:

x0, y0, x1, y1 = cv.bbox(temporary) 

BBOXコマンドの公式ドキュメントは、これは言いますtagOrId引数で指定された項目。このリストの形式は、 "x1 y1 x2 y2"であり、すべての名前付き要素の描画領域は、左側にx1、右側にx2、上にy1、下にy2で囲まれた領域内にあります。戻り値は、実際の境界ボックスを数ピクセルだけ過大評価することがあります。 tagOrId引数に一致する項目がない場合、または一致する項目に空のバウンディングボックスがある場合(つまり、何も表示されない場合)、空の文字列が返されます。

関連する問題