Last-modified: Wed, 16 May 2012 01:48:55 JST
Counter:1297 Today:1 Yesterday:1 Online:6
このエントリーをはてなブックマークに追加

このコンテンツの想定

対象者

 このコンテンツは、基本的なプログラミングに関する知識を持ち、かつ画像処理に興味関心のある方を対象として想定しています。特に下記の条件を満たす方を対象としています。必須の限りではありませんが、これらについて深く言及することはありません。

  • VisualStudioについてプロジェクトを生成しプログラミングを行ったことがある。
  • C#によるプログラミングを行ったことがある。

プログラミングとVisualStudioについて

 例えば、"for構文"や"配列"などの扱いが分からない場合は、まずプログラミングに関する基礎知識を学習した後に参照してください。またサンプルプログラムはC#とVisualStudioのプロジェクトファイルとして提供されます。VisualStudioの操作方法についても言及しません。

環境の選択について

以下は少々込み入った話です。本質的に不要なので、画像処理以外に興味が無い人は読み飛ばしてください。

なぜVisualStudioとC#なのか

 Microsoftの提供するVisualStudioは強力なIDE(統合開発環境)です。インストールは容易に完了でき、VisualStudioさえ入っていれば異なる環境下でも同じように扱うことができます。またC#という言語はその性質から実現したい機能を端的に記述することができます。本質的に不要な労力を割くことは、学習において重要なことです。よってVisualStudioとC#を採用しています。

なぜWPFなのか

 C#を用いたGUIアプリケーション開発には大きく「WindowsForms」と「WPF」とを扱う場合があります。画像を端的に扱う場合には凡そ「WindowsForms」の方が向いています。画像ファイルを素早くBitmapインスタンスとして取り込むことができますし、GetPixelやSetPixelといった画素毎の処理を行うための汎用的なメソッドが標準で提供されるためです。  しかしながら本コンテンツではWPFを採用します。理由は以下の通りです。画像処理の実装を行う場合は、殆どの場合にbyte配列へ展開してしまうこと。画像ファイルとは言え結局は画素データの並びであって、普通は配列を用いて処理を実装します。標準的に扱われている実装に導入時点から慣れることが必要で、逆に言えば画素情報の配列の扱いさえ覚えてしまえば、本コンテンツで扱う環境とは異なる環境下でもスムーズに実装出来ることになります。  次に将来的なHLSLへの展開があります。WPFではGPUを利用するための言語HLSLを利用することができます。2012年現在、今やGPUを積んでいない端末の方が稀で、またWindowsFormsよりもWPFを将来的に展開する流れが来ています。旧プラットフォームでの実装よりも、今の内からWPFで学んでおいて損は無いという考えの元、WPFを採用しました。