2011年11月アーカイブ

<画像処理4>

| | コメント(0)

 美齊津さんのブログでは、海から工場を見学していた話が載っていました。それでは、私は中から見学してみたいと思います。
 子供の頃は社会科見学というものがあり、我が家の娘達も年に数回学校の授業でいろいろな会社を見学しておりますが、私も社会科見学をしたいと思い、早速工場見学をして参りました。

 工場見学といいますと一度行ってみたかったのが、ビール工場です。
 なぜかといいますと、中央高速道路を走っているとついつい口ずさんでしまう歌は有りませんか?そう、あの松任谷由実の歌です。
 「中央フリーウェイ~、右に見える競馬場~左はビール工場。。。」
 という訳で、娘と工場見学するには若干強引でありますがユーミンの歌で憧れていたビール工場へ早速出発です。

20111114_1_tobe.jpg

 

 工場見学を致しますと、いわゆるビールができるまでの工程を一つ一つ説明してくれます。ビールを作るのに大事な3要素「麦、水、ホップ」をならい初めてホップの匂いを嗅がせて頂きました。私は恥ずかしながらホップというものを見たことがなかったのですが、このホップがビールの香り付けに非常に重要で結構強い香りがします。麦芽はよく出てきますが、ホップについてはあまり知りませんでした。このホップ。。。どのくらいビールに影響を与えているか早速調べてみます。(あくまでも学習のためです)

20111114_2_tobe.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 おお、確かにアロマホップの香りがします。(もちろん子供はオレンジジュースです)

 さて先ほどの、「ユーミン」の歌には続きがあります。「この道は~~まるで滑走路、夜空に続く」と言う訳で次は航空会社です(笑)

 

20111114_3_tobe.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 ここでは、飛行機がなぜ飛ぶのかから説明してくれます。飛行機が飛ぶ理由は理科の勉強で習っています。飛行機の羽根の形に理由があり上空の空気が早く移動すると気圧が薄くなり、羽を吸い上げるように力が働きます。。。しかしどうも式とか理屈で説明されてもという感じがしますね。そこの説明員の方は唇の下側に紙をおいて、力強く息を吹きます。するとどうでしょう、唇の下側にある用紙がまさに吸い上げるられるように持ち上がるのです。なるほど「百聞は一見にしかず」ですね。どんな教科書よりもわかりやすい気がします。プログラムも本で覚えるだけでなく、実際に書いて動かしてみることが覚えるためには一番の近道だと思います。
 さて、この航空会社ではヘルメットをかぶって実際の航空機の整備場に入らせてもらえます。整備場はもちろん飛行場の中にありますから、直ぐ目の前は滑走路です。丁度この日は運良く風向きの都合で目の前で飛行機が着陸するところを見ることが出来ました。

20111114_4_tobe.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

<画像処理4>
 ようやく表示までできましたので、最後に本題であります、アルファーチャンネルを含んだ画像の合成を致します。まずは、準備として合成するための透過率設定を行うために、ダイヤログ上にNumericUpDownコントロールを配置します。

20111114_5_tobe.png

 

 

 

 

 

 

 評価用ですので、特に小数点はなしに0~100%まで設定しますので、初期値をそれぞれ以下のように設定します。

20111114_6_tobe.png 

 

 ただし、背景画像だけは、Value = 100にしておきます。
 これらコントロールの名称はNud_で登録します。

  • 画像1:Nud_Image1
  • 画像2:Num_Image2
  • 背景画像:Nud_Image3

 さて、上記透過率を元にこれら3つの画像ファイルを合成いたします。

20111114_7_tobe.png

  プログラムとしては以下ステップで行います。

  • 画像ファイルの取り出し。
  • 透過率の取り出し。
  • 画像データ(ピクセル値)の取り出し。
  • 合成処理
  • 表示処理


[画像ファイルの取り出し]
 前回のBlogで紹介しました表示作業の時に、画像ファイル(ビットマップファイルの中身)を以下のデータに格納致しました。
 BitmapData[num];

 今回もキーをもとに取り出します。

20111114_8_tobe.png[透過率の取り出し]
 先ほど作成しました、NumericUpDownコントロールから透過率を取り出します。
 透過率については、画像ファイルの中では0~255の値で設定できるようになっています。従って、今回はNumericUpDownから取り出した割合(%)を以下の式で0~255の値に変換しております。
 一応、255という値の特性から割り切れない場合もありますので四捨五入のために(100/2)の値を追加しております。

20111114_9_tobe.png

[画像データ(ピクセル値)の取り出し]
 ピクセルデータについては、8bitの色情報(R,G,B)と透過率情報(A)を合わせて32bitのデータとなっております。そこで、構造体として取得可能となるように以下の共有体を作成しました。

 
20111114_10_tobe.png
 

 

 そして、以降行う計算式については、基本的には32bitのピクセルデータをそのまま扱う形としたいので、改めて、取り出したピクセルデータの透過率に先ほどの透過率を格納します。

20111114_11_tobe.png

  残りは合成処理になります、こちらについては、次回ご紹介させて頂きます。


 さて、工場見学をしていて感じたことは、説明説する方からその仕事が大好きだという雰囲気を感じることでした。航空会社ですと、参加者から「なんか珍しい形の飛行機ですね。。」と言われますとうれしそうに「あれはMD-90」ですね。。「あの飛行機はエンジンが翼の下についていないので。。」とかなり技術的なことを説明してくれます。
 飛行機が好きなんだなぁと感じることが多々有りました。

 最後にもう少しホップについて理解するために今度はビターホップを勉強。。

20111114_12_tobe.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 ひっく。。 (*^。^*)
 覚えたことを忘れそうです。