64bit対応のOpenCV 2.0のスタティックリンクライブラリのビルド

Posted on Mon 15 March 2010 in OpenCV

CMakeを用いてVisual Studioのプロジェクトを作る

ここを参考にOpenCVのソースからVisual Studioのプロジェクトを作成する。
http://d.hatena.ne.jp/Guernsey/20091002/1254459730

「アプリケーションを正しく初期化できませんでした (0xc0150002)」というエラーダイアログがでないようにするためにCMakeのConfigure時にでENABLE_OPENMPを外す。
http://d.hatena.ne.jp/Guernsey/20091120/1258734848

スタティックリンクライブラリをビルドするために

  • 「構成プロパティ」→「全般」で「構成の種類」をダイナミックライブラリからスタティックライブラリに変更する
  • DllMain()をコメントアウト
  • opencv-1.1preからvideoInput.libをリンクさせる
  • atlthunk.libが見つからないとリンクエラーが出たらatlthunk.libを無視

64bit対応にするために

  • すべてのプロジェクトのプロパティの「構成プロパティ」→「C/C …

Continue reading

OpenCVで3次スプライン補間

Posted on Mon 21 September 2009 in OpenCV

OpenCVの連立1次方程式を解くcvSolveを利用して3次のスプライン補間を行うコード。

コード

#include <stdio.h>
#include <string.h>
#include <cv.h>
#include <highgui.h>
void SetPixelToBGR(IplImage *image, int x, int y, int b, int g, int r)
{
  assert(image->nChannels == 3);
  if(!image) return;
  if(( 0 <= x && x <= image->width -1 )&& (0 <= y && y <= image->height -1 ) )
  {
    b …

Continue reading

行列の計算

Posted on Sun 06 July 2008 in OpenCV

画像の拡大縮小で、↓の様な行列を使って変形させ、
マウスの座標をこの逆行列をかけることによって画像上の座標に変換しようとしたが、
どうも上手くいかない。

cvMul()で行列の掛け算をしてるとこでアサーションが起こる。

f:id:hiroki0:20080707005724j:image

http://d.hatena.ne.jp/DOSEI/20060508/p1

↑によるとcvMul()は要素同士の積なので、エラーが出たようだ。
cvMatMul()を使用すると、上手くいけた。


OpenCVで処理した画像をDirectXで表示する。

Posted on Thu 22 May 2008 in OpenCV

OpenCVではIplImage型に画像データが格納され、
IplImageのimageDataから画像データにアクセスできる。
データの格納順はBGRAとなっている。
これをDirectXのテクスチャに変換できないかと思って実行した。

手順はこんな感じ
・IDirect3DTexture9::CreateTextureでテクスチャを作成
・IDirect3DTexture9::LockRectを行ってデータを転送

カメラに写っている内容をDirectXで表示
f:id:hiroki0:20080523003112p:image

コードはこんな感じでいけると思う。(OpenCV側のデータが符号なし8ビット整数のときだけだが・・・)

HRESULT CreateTextureIPLImage(LPDIRECT3DDEVICE9 pDevice, IplImage* iplImage, UINT Width, UINT Height, UINT Levels, LPDIRECT3DTEXTURE9* ppTexture)
{
  HRESULT hr;
  //テクスチャ作成
  hr = pDevice->CreateTexture(Width, Height, Levels, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, ppTexture, NULL);
  if(FAILED(hr)){
    return …

Continue reading

OpenCVはじめました。

Posted on Wed 21 May 2008 in OpenCV

安いUSBカメラかったのでOpenCVに手を出してみました。

背景差分法のプログラムです。
f:id:hiroki0:20080521063155p:image


Posted on Wed 21 May 2008 in OpenCV • Tagged with OpenCV

肌色部分抽出
RGBからHSVへ変換
・H(色相)だけを取り出して、肌色っぽい部分を取り出す
・取り出したものと背景差分のANDをとって表示
f:id:hiroki0:20080522011926p:image

顔追跡
・肌色領域の重心をもとめてそこを中心に円を描く
f:id:hiroki0:20080522011925p:image