semantic segmentationによって分類した結果を,混同行列にて示したいと考えております.
準備段階として,2つの画像を比べ,同じ位置にあるピクセルが同じ色であれば,TPに1を足していく,といったコードの作成を試みております.
例として,以下のような画像があったと仮定します.
この画像のうち,RGBが255,0,0のところをTrue,それ以外をFalseとし,両画像の同じ位置でTrueとなった場合,TPに1を足そうと考えています.
python
1img_correct = np.array([[[ 0, 50, 20], [255, 0, 0]], 2 [[255, 0, 0], [ 0, 100, 10]], 3 [[ 0, 0, 0], [ 10, 100, 10]]]) 4img_test = np.array([[[255, 0, 0], [255, 0, 0]], 5 [[ 0, 100, 100], [255, 0, 0]], 6 [[ 0, 0, 0], [ 10, 200, 200]]])
各ピクセルにおけるTrue/Falseを知るために,np.whereを使って以下のように書いてみたのですが,すべての要素についてそれぞれTrue/Falseの判定が出てしまいます.
python
1correct_new = np.where(img_correct==[255,0,0], True, False) 2 3[[[False False False] 4 [ True True True]] 5 6 [[ True True True] 7 [False False False]] 8 9 [[False True True] 10 [False False False]]]
このように,ピクセルごとの結果を示すには,どのような関数を使用すれば良いでしょうか.
また,最終的に扱う画像の枚数が多いので,できる限り処理を軽くしたいのですが,他の方法でもっと処理を軽くできるものがあれば,教えていただけたらと思います.
python
1[[[False] [True]] 2 [[True] [False]] 3 [[False] [False]]]
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/08 11:11
2021/07/08 11:16