3

画像と、操作する画像のサブ領域を指定するスライス オブジェクトを受け取る関数があります。デバッグ目的で、指定された領域の周りにボックスを描画したいと思います。ボックスを描画する最も簡単な方法は、その 2 つの角の座標を取得することです。ただし、スライスオブジェクトからそれらの座標を取得する良い方法が見つかりません。

もちろん、大きなマトリックスを定義し、その上でスライスを使用して、どの要素が影響を受けるかを把握するという、非常に非効率的な方法があります。

#given some slice like this
my_slice = np.s_[ymin:ymax+1, xmin:xmax+1]

#recover its dimensions
large_matrix = np.ones((max_height, max_width))
large_matrix[my_slice] = 1
minx = np.min(np.where(large_matrix == 1)[0])
maxx = np.max(np.where(large_matrix == 1)[0])
...

これが最善の方法である場合、おそらく、スライス オブジェクトを渡すことから、ある種の四角形オブジェクトに切り替える必要があります。

4

1 に答える 1