画像センシング展/SSII2012

2012.6.6(水)~2012.6.8(金)にパシフィコ横浜にて画像センシング展2012 が開催されます。

 

この展示会は12月に開催される画像機器展に並んで画像処理機器(カメラ、レンズ、キャプチャボード、照明、画像処理ライブラリなど)が一堂に会する大きな(画像処理の展示会としては)展示会です。

 

画像処理を使った検査システムなどを検討している方であれば、是非とも参加されると良いと思います。
技術相談コーナーなどもあります。
何故か私も最終日の最後の時間に相談コーナーを担当する事に...

http://www.adcom-media.co.jp/iss/gijutsu_schedule/?ml_20120604

 

また、主に出展社による無償のイメージングセミナーも開催されるので、興味のある内容があれば参加されると良いと思います。

 

私は「KINECT テクノロジーと NUI の可能性」という内容に興味津々。(仕事とは全く関係ありませんが。)

 

今回の展示会では、Kinect for Windowsが出た事でKinectの商用利用が可能になったので、Kinect関連の展示や発表がある事を期待しつつ...

 

同時開催でSSII2012というシンポジウム(有料)も開催されます。

 

こちらは主に研究論文発表の内容ですが、画像処理の研究に携わっている方であれば、かなり有意義だと思います。

 

主な内容

特別講演 http://www.ssii.jp/special_program_lecture.html

チュートリアル http://www.ssii.jp/special_program_tutorial.html

オーガナイズドセッション http://www.ssii.jp/special_program_organized.html

ん~、気になる。

【参考書籍】〔速攻入門〕 C#プログラミング すぐに現場で使える知識

最近はC#を基礎から勉強しようと思い、わんくま同盟でも活躍されている著者の面々にあこがれて買ったこの本。
サブタイトルの「JavaかC++の知識があれば、いっそう有利な最短ルート」とあるように、この本はC++やJavaと比較しながら説明されています。

 

とくに良かった点は、「C#の××はC++では○○に相当しますが、△△な点が異なります。」というような表現は多かった事。
知りたかったポイントや、知らなくてちょっとヒヤっとした点など、簡素にまとまっています。

 

C#は過去に何かしらのプログラムをやった事があって、.NETの名前空間に慣れれば何となくプログラムできてしまいますが、逆に過去の知識が邪魔をして陥り易いミスもあると思います。

 

そんなC#をある程度やって、初級から中級、上級をめざす方にお勧めな本だと思います。
逆にまったくC#が初めてだと、ちょっと難しく感じると思います。

 

 

目次

Part 1 C#の文法 速攻入門
Chapter 1 C#とは?
1.1 C#の特徴
1.2 .NET Framework
Chapter 2 プログラム構造
2.1 基本的な構文―Hello World
2.2 コメント
2.3 名前空間
2.4 型―名前空間に属するメンバー
2.5 Mainメソッド
Chapter 3 手続きの記述
3.1 式の概要
3.2 ステートメントの概要
3.3 変数の宣言
3.4 演算子
3.5 制御構文
3.6 オーバーフローのチェック
3.7 例外処理
3.8 usingステートメント
3.9 型情報
3.10 既定値
3.11 lockステートメント
3.12 ラムダ式
3.13 クエリ式
Chapter 4 型
4.1 値型と参照型の違い
4.2 組み込み型
4.3 ジェネリック
Chapter 5 クラス
5.1 クラスの定義
5.2 アクセシビリティ
5.3 クラスのメンバー
5.4 静的メンバー
5.5 継承
5.6 クラスの分割定義
5.7 外部メソッド
5.8 匿名クラス
Chapter 6 インターフェイス
6.1 インターフェイスの定義
6.2 インターフェイスの実装
Chapter 7 構造体
7.1 構造体の定義
7.2 クラスあるいは構造体の選択
Chapter 8 列挙型
8.1 列挙型の定義
8.2 列挙型の利用
8.3 ビットフラグ
8.4 拡張メソッドの利用
Chapter 9 デリゲート
9.1 デリゲートの定義
9.2 デリゲートの利用
9.3 匿名関数
Chapter 10 配列
10.1 配列の利用
10.2 多次元配列
10.3 System.Array型
10.4 配列の共変性
Chapter 11 Null許容型
11.1 Null許容型の利用
11.2 Nullable構造体
11.3 型変換
11.4 演算子
Chapter 12 属性
12.1 属性の例
12.2 属性の定義
12.3 属性の適用
12.4 属性値の実行時取得
12.5 C#コンパイラが使用する属性
12.6 相互運用のための属性
Chapter 13 安全でないコード
13.1 ポインターとは?
13.2 「安全でないコード」の注意点
13.3 unsafeコンテキスト
13.4 ポインター型
13.5 sizeof演算子の利用
13.6 アドレスの固定化
13.7 スタックの割り当て
13.8 固定サイズバッファーの埋め込み
Part 2 C#のポイント 速攻入門
Chapter 1 ジェネリック
1.1 ジェネリックの利用方法
1.2 内部的な方式の比較
1.3 実装方式の比較
1.4 メンバー参照
1.5 強い型付け
Chapter 2 定数と読み取り専用
2.1 バージョニング問題
2.2 フィールドの再代入禁止とオブジェクトの不変性
2.3 引数の既定値
Chapter 3 例外処理
3.1 例外の利用場面
3.2 try-catchとtry-finally
Chapter 4 リソース管理
4.1 ガベージコレクション
4.2 デストラクター
Chapter 5 イベント駆動
5.1 イベント構文
5.2 イベントとメモリリーク
Chapter 6 暗黙的な型指定
6.1 冗長性の排除
6.2 オーバーロードとジェネリック
6.3 varと匿名型
Chapter 7 データ処理
7.1 反復子構文
7.2 反復子構文を使ったデータの加工
7.3 LINQ
Part 3 C#活用 速攻入門
Chapter 1 ファイルの読み書き
1.1 サンプルの内容
1.2 LINQを使ったCSVファイルの読み書き
1.3 ReadLinesの内部挙動
1.4 LINQを使わない例
1.5 ファイルの読み書きに関係するその他のクラス
Chapter 2 GUI
2.1 簡単なGUIアプリケーションの例
2.2 GUIと非同期処理
2.3 視覚的デザインツールの利用
2.4 ビューの分離
Chapter 3 Webアクセス
3.1 Webページの表示
3.2 Webアクセスのためのクラス
3.3 Webサービスの利用
3.4 Webアクセスに関係するその他のクラス
Chapter 4 Win32 APIとCOMの扱い
4.1 単純なP/Invokeの例
4.2 文字列を受け渡しするP/Invoke
4.3 文字列を渡す場合のその他の方法
4.4 構造体を利用したP/Invoke
4.5 COMのやり取り
4.6 MS Officeなどとのやり取り
Chapter 5 データベースアクセス
5.1 一番シンプルなADO.NET
5.2 ExecuteReaderとMARS
5.3 DataSetを使ったデータアクセス方法
5.4 DataSetなどで隠蔽されたデータの行方
5.5 DataSetを使ってデータの絞り込みを行う方法
5.6 DataSetを使ったデータの更新削除
5.7 LINQ to SQLを使ってデータの絞り込みを行う方法
5.8 LINQ to SQLを使った更新方法
5.9 LINQ to SQLのその他の違い
5.10 LINQ to SQLのSELECTでストアドプロシージャを使う方法
5.11 Entity Frameworkを利用したデータアクセス
5.12 Entity FrameworkのSELECTでストアドプロシージャを使う方法
5.13 どの技術を使うのが良いのか?
Chapter 6 並列処理
6.1 Threadクラスを利用する方法
6.2 同期化の方法
6.3 プロセスをまたいだ排他処理
6.4 スレッドセーフなコレクション
6.5 デリゲートを利用する方法
6.6 BackgroundWorkerを利用する方法
6.7 Taskを利用する方法
6.8 Parallel.For,Parallel.ForEachを利用する方法
6.9 Parallel LINQを利用する方法
Chapter 7 実行時コード生成
7.1 静的なコード
7.2 リフレクション
7.3 動的に生成したコードのキャッシュ

 

 

OpenCV-2.4.0-GPU-demos-packが公開

OpenCV2.4Betaの公開に引き続き、GPU(CUDA4.1)を使ったOpenCV処理のデモソフト(OpenCV-2.4.0-GPU-demos-pack)が公開されました。

 

入手先はこちら

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.0/

 

このデモを動かすにはCUDA4.1が必要で、インストールされていない場合は、こちら↓

http://developer.nvidia.com/cuda-toolkit-41

 

のサイトの少し下の部分 Developer Drivers Downloads より環境に合わせたドライバをダウンロード、インストールする事で、OpenCV-2.4.0-GPU-demos-packが動作可能となります。

OpenCV2.4Betaが公開されました。

2012.5.1 OpenCV2.4の正式版となりました。
2012.4.13 OpenCV2.4Beta2となりました。
2012.4.3 0:30頃? OpenCV2.4Betaが公開されました。

OpenCV2.4Betaの入手先は

 

【Windowsの場合】

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.0/

【Unixの場合】

http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.0/

 

今回の変更内容はこちら

http://code.opencv.org/projects/opencv/wiki/ChangeLog#New-functionality

 

【マニュアル類】
●リファレンスマニュアル(http://opencv.itseez.com/opencv2refman.pdf)
●ユーザーガイド(http://opencv.itseez.com/opencv_user.pdf)
●チュートリアル(http://opencv.itseez.com/opencv_tutorials.pdf)

 

Cannyやfindcontourがカラーに対応したとのこと。

findcontourの例↓

findcontourの場合はカラーで二値化した場合の事らしい。

Cannyのカラー対応って?と思ったら、処理結果はモノクロで出力されます。

 

まだ、詳細を見ていませんが、今回は新しい構成にopencv_nonfree、opencv_photo、opencv_videostabなる物が追加されています。

 

opencv_nonfreeには特許の取られている処理アルゴリズムのSIFTとSURFがこちらの構成に入れられたので、必要ない時はこのdllを使わなければいいので、特許の心配は無くなりました?って言っていいのだろうか?他にも無いか?ちょっと心配...

 

必要なモジュールはCMakeの時に選択できるようになりました。

 

 

過去の例で言うと、Betaと付いた場合は比較的早く新しいバージョンが公開されるので、人柱になるつもりが無ければ今のところは使わなくていいと思います。

 

今回のOpencV2.4Betaでは、サンプル画像の中に基盤の絵があったり、何やら工業用途で使えるようになるような期待感が...

 

評価中メモ

※メモなので、下記内容に信憑性はありません。



●GPU処理はCUDA4.1が必要


●cv::imread(ファイル名)で画像が読み込めない。(cv::Matにデータが入らない)
とりあえず、こんな感じ↓で回避中
cv::Ptr src = cvLoadImage(“Lenna.bmp”, ・・・・・・
cv::Mat img(src);


●cv::namedWindowのタイトルの文字が文字化けする


●カメラ制御用のenumが増えている。しかもちゃんと使えるっぽい。これでOpenCVからカメラの制御ができるかも?
CV_CAP_PROP_ZOOM =27,
CV_CAP_PROP_FOCUS =28,
CV_CAP_PROP_GUID =29,
CV_CAP_PROP_ISO_SPEED =30,
CV_CAP_PROP_MAX_DC1394 =31,
CV_CAP_PROP_BACKLIGHT =32,
CV_CAP_PROP_PAN =33,
CV_CAP_PROP_TILT =34,
CV_CAP_PROP_ROLL =35,
CV_CAP_PROP_IRIS =36,
CV_CAP_PROP_SETTINGS =37,