私は親切にこの質問にunutbuとジョーキングトンによって寄与方法を使用してオブジェクト(スライス)に分割された画像た:Rectangular bounding box around blobs in a monochrome image using pythonを、次の形式をとり、これらのオブジェクトのリストを持っている:重複したイメージのスライスをリストからどのように見つけて削除できますか?
the_blobs = [(slice(dy.start, dy.stop, None), slice(dx.start, dx.stop, None))]
dy.startを開始yピクセル値を与え、dy.stopは最終的なyピクセル値を与え、dxについても同じ処理を行う。
リストの中には、重なり合ういくつかのオブジェクト、すなわち、1つの小さなオブジェクト(正方形)が円のような大きなオブジェクト内にあるものがあります。これが発生すると、リストから「囲まれた」オブジェクトを削除したい(サークルには既に含まれているため)。
現在のリスト
the_blobs = [(slice(100L, 1000L, None), slice(100L, 1000L, None)),
(slice(150L, 220L, None), slice(150L, 220L, None)),
(slice(1001L, 2000L, None), slice(1500L, 1700L, None)),
(slice(2001L, 2200L, None), slice(1800L, 1890L, None))]
理想リスト(オブジェクトで除去)
the_blobs = [(slice(100L, 1000L, None), slice(100L, 1000L, None)),
(slice(1001L, 2000L, None), slice(1500L, 1700L, None)),
(slice(2001L, 2200L, None), slice(1800L, 1890L, None))]
Iは、上記問題の一部として提案は、以下のコードを使用するようになされたことに注意してください:
data_slices = ndimage.find_objects(coded_paws)
for s in data_slices:
filled[s] = True
coded_paws, num_paws = ndimage.label(filled)
data_slices = ndimage.find_objects(coded_paws)
しかし、これは100%の時間では動作していないようで、元の質問の範囲を少し超えています。この部分を別の具体的な質問として再開しています。
私はこれをどのように達成することができますか?
EDIT:こここの
と
を返す処理上のコードで動作しない実際の画像例です
理想的には私はもちろん、あなたが他のすべての塊に対して、各ブロブをチェックし、それかどうかを判断O(N^2)のアプローチを取ることができ、スライス