numpyの練習として,画像をrgbからhsvへ変換するコードを書いていました.
rgbですので画像のはshapeは,高さh,幅wとすると,hw3です.
rgbからhsvへ変換する際にhを求める式では,
最大値が
rの場合 g-b
gの場合 b-r
bの場合 r-g
とそれぞれ最大値以外の値を用いた計算が必要となります.(参考url)
numpyの操作として最大値を取り出すのは造作もないのですが,最大値の右隣や左隣の要素を取り出すのが難しいです.
取り出すべき値のindexについては,argmaxを用いて得られるために得たindexに+1もしくは+2をした後に%3と余りを求めれば隣の要素のindexも得られるために,内包表記を用いてTrue Falseで位置を示す配列を作成することは出来ました.
しかしそれはスマートではありません.
何か良い方法はないでしょうか.
回答1件
あなたの回答
tips
プレビュー