人のカメラ画像を取得し、その人物を構成するピクセルを決定し、他のすべてのピクセルを(0,0,0)に設定するメソッドを作成しました。この新しい画像は、黒いピクセルで囲まれた人物を示しています。黒ピクセル(R、G、B)=(0,0,0)で囲まれた色付きピクセル(R、G、B)!=(0,0,0) ?
これらの画像は、最初の2つの次元が画像の幅と高さを構成し、3がチャネル(R、G、B)を表す形状(500,500,3)を有する。
私が次にしたいのはノイズを除去することです。その人物に属すると誤って分類されたピクセルがいくつかあります。つまり、黒画素で囲まれた画素である。
色はありますが、黒のピクセル(0,0,0)で囲まれたこれらの「孤独なピクセル」を削除するにはどうすればよいですか?
'bool_arr = np.sum(arr、axis = -1)== 0'では、すべての黒いピクセルが「真」になります。その機能を(もっと効率的に)したいのであれば、 'bool_arr = np.logical_not(np.logical_or.accumulate(arr、axis = -1))' –
を試してください。本当にありがとうございます。私はバージョンを残しておきます。なぜなら、アレイが非常に小さいので、パフォーマンスがそれほど大きな問題であることを読んだり理解したりするのは簡単だと思うからです。 –
ジョーのコンボリューションの利点は、 'wrong_pixels =〜conv_arr.astype(bool) 'を実行できるということです。なぜなら、' 0 '以外の整数は比較なしで' True 'に解決されるからです。はるかに高速。また、色付きのピクセルに隣接する多くの黒色のピクセルを上書きします。 –