私は、生成されたリストのキーポイントで840,525に最も近い座標を見つけようとしています。ポイントのリストから画面の中央に最も近いポイントを探しようとしています
背景: 画面の中央にあるブロブ(OpenCVはそれぞれの中心に座標を与える)を別のブロブに移動するシステムで作業していましたが、一度に複数のブロブが生成されていますしかし、私は中央の私の位置から最も近いブロブに行きたい(840,525)。ブロブはOpenCVによって発見されます。中央のブロブがマウスポインタの座標に移動すると、その瞬間が私のマウスによって制御されます。
現在、カーソルが見つかった最初のポイントにカーソルを置くだけです。
detector = cv2.SimpleBlobDetector_create(params)
# Detect blobs.
keypoints = detector.detect(processed_img)
#put curser on top of blob
win32api.SetCursorPos((int(keypoints[0].pt[0]),(int(keypoints[0].pt[1]))))
# Draw detected blobs as red circles.
# cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS ensures the size of the circle corresponds to the size of blob
processed_img = cv2.drawKeypoints(processed_img, keypoints, np.array([]), (255, 0, 0), cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
さて、OpenCVは私に大きなリストまたは配列を与えますか?私はピクセル座標に変換します。私はどのように(840,525)である中央にクローゼット1のリストまたは配列を検索するか分からない。私はループごとに1がキーポイントの.pt
属性から取得することができますOpenCVの中keypoint
オブジェクトの最も近い:(
「最も近いブロブ」とは、いくつかのピクセルに言うと、これはいくつかの異なることを意味する可能性があります。ブロブは多くのピクセルでできています。ブロブの中心のようなものから、またはブロブの端の最も近いピクセルからその点までを測定したいですか?また、「VisualBasicのようなものではなく、私はすべてのものを見つけることができますが、最も近いものを見つけることができます」 - Pythonを含む基本的にすべてのプログラミング言語であなたができることは間違いない... –
OpenCVは私の投稿を編集しますブロブを作成し、それに単一の座標値を与えます。私は方法を知っていればリストをループすることができました。私はxとyを分割する方法を知っていますが、最初の値よりも多くの値を検索する方法がわかりません。 – jacksalssome
[* minimal *と* complete *検証可能な例](https://stackoverflow.com/help/mcve)を与えるために編集できますか?特に処理されたイメージの例と、正確に何が起こりたいのですか?それが現れても、誰もこのコードをコピーして貼り付けて実行することはできません。私はまたあなたがここで尋ねているものを本当に理解していません。 blobを別のblobに移動することは、どういう意味ですか? 「瞬間が私のマウスによって制御される」とはどういう意味ですか? –