サーバレス練習帳

着眼大局着手小局

delphi/webカメラ/顔認識 ~ 試行錯誤編

前回はpythonを試しました。
serverless.hateblo.jp

そして、いつも通りdelphiを探したところ、こういうものが見つかったわけだ。やってみるか。
rad-studio-note.sblo.jp

いや、上記のやつは難しすぎるな。もっと簡単なのを探そう。

http://netakiri.net/delphitips/tips.cgi?kate=9&faq=22

cvLoadにnilが入ってエラーになっちゃう。
どうやら、この人は同じエラーが出ている模様。
github.com


そして、レオナルドダビンチみたいな回答者が、自作プログラムを公開していた。
sourceforge.net

ダビンチのアドバイスに従い、全体のvarでの、

  FaceCascadeFile: AnsiString = 'haarcascade_frontalface_alt.xml';

及び プロシージャ内に

	Cascade2 := PCvHaarClassifierCascade(cvLoad(pChar(FaceCascadeFile), nil, nil, nil ));

・・・と書いたら、cvLoadにnilが入ってしまう事象は解決した。
これで動くは動いて顔の数などは検出してくれるのだが、WEBカメラの画像をTImageに映せなくて、困っている。

さて、Haar-Like特徴分類機は動いていると「思う」ので、シンプルにWEBカメラの画像を表示するdelphi/opencvを試してみたいと思いまして、これを参考にやってみます。
www.sugakoubou.com

まずは、delphi-opencvラッパーをダウンロードするところから・・・って、ダウンロードに時間がかかるなぁ。

ダウンロード待ちの間に基本に立ち返りまして、MR.XRayをみることに、すると・・・
mrxray.on.coocan.jp

delphiopencvラッパーには、Delphi-OpenCV とネタキリラボが提供しているライブラリの2つがあることが書かれていました。
さらに、ネタキリラボの使い方の説明もあり、Delphi 2009 以降で利用するには Ipl.pas と OpenCV.pas 内のコードを一部変更するようにと書いてありました。なるほど!これで、再度やってみます!

⇒ できた!