lambdaは、どんな計算を実行するかを定義(def)しなくても、関数として計算が実行される書き方です。
例えば、定義すると以下のようになるところが、
例えば、定義すると以下のようになるところが、
lambdaで関数を書くと、このようになります。
これを、map(lambda関数,データ)という書き方に当てはめると、データをlambda関数で処理して、新しいデータリストが返されます。
実際にコードで見てみると、
実際にコードで見てみると、
lambda x:x -minimumで、画素値(x)から最小値を引き算する関数がpixelsデータに実行され、map(,)により新しいデータリストが生成されます。
これがpixels3に代入され、縦横の幅を設定して、2次元の画像情報としてip3に、そしてスタックとしてimp3にデータが渡されるということになります。
①②どちらの方法でも、同じ結果が得られます。実際に試してみましょう。
これがpixels3に代入され、縦横の幅を設定して、2次元の画像情報としてip3に、そしてスタックとしてimp3にデータが渡されるということになります。
①②どちらの方法でも、同じ結果が得られます。実際に試してみましょう。
こちらは、ImageJのサンプル画像である橋(Bridge)の8bit画像に、全画素に対して127を足したもの(あるいは引き算したもの)になります。8bitは256階調なので、元の画素が129以上あると、サチってしまいます。この画像に最小値減算処理を行ってみましょう。
左が処理前の画像、右が処理後の画像になります。
ところで、元々の画像の最小値はいくつだったのでしょうか。
前回のコードで調べてみると、、
ところで、元々の画像の最小値はいくつだったのでしょうか。
前回のコードで調べてみると、、
元の画像の最小値は0、127を加算した後の最小値は127だと分かりました。つまり、最小値を減算すれば、元の画像に戻るという訳ですね。
さて、いかがだったでしょうか?次回でPython×Fijiは一旦区切りになります!
さて、いかがだったでしょうか?次回でPython×Fijiは一旦区切りになります!