1

線を指定して、線で区切られた 2 つの領域を持つバイナリ イメージをすばやく作成したいと思います。私はそれをやっています

rows, cols = pix_arr.shape
arr = [ func(i) for i in range(0,rows*cols)]
arr = np.array(arr,dtype = 'bool')
arr = arr.reshape(pix_arr.shape)

func(i) は

func = lambda i: (i / cols) - m*(i % cols)-c < 0

そして、pix_arrいくつかの2D numpy配列です。mおよびcは直線の方程式の傾きと定数です。

次のような出力が得られます

ここに画像の説明を入力

これを行うより速い方法はありますか?

4

1 に答える 1

1

次のようなことが簡単にできます。

row_idx = np.arange(rows)[:, None]
col_idx = np.arange(cols)

binary_img = (row_idx - m * col_idx) > c

これにより、必要なものに近づくことができますが、直線方程式の軸を定義する方法によっては、結果を上下逆にする必要がある場合があります。

于 2014-03-28T17:15:37.783 に答える