動機
こちらの記事でおもしろそうとおもったので.
参考
こちらの記事とこちらの記事とリファレンス
感謝!
やったこと1: OpenCV 1.1preについて
以前の記事に書いた通り
・こちらからEnglish Versionの'OpenCV-Private-Framework-1.2.dmg'をdownload.
・インストールとしてOpenCV.frameworkフォルダを/Library/FrameworksフォルダへCopy.
やったこと2:Snow Leopard + Xcode 3.2で
2.1 プロジェクトは‘Applicatoin/Command Line Tool/Type C++ stdc++’を選択.
2.2 プロジェクトに既存のフレームワークとして‘/Library/Frameworks/OpenCV.framework’を追加
2.3 プロジェクトの情報(インスペクタ)でアーキテクチャを‘32-bit Universal’, 有効なアーキテクチャを‘i386’にする.
2.4 main.cppを編集#include <OpenCV/cv.h>
#include <OpenCV/highgui.h>
int
main (int argc, char **argv)
{
IplImage *image_left, *image_right;
if (argc != 3 ||
(image_left = cvLoadImage (argv[1], CV_LOAD_IMAGE_GRAYSCALE)) == 0 ||
(image_right = cvLoadImage (argv[2], CV_LOAD_IMAGE_GRAYSCALE)) == 0)
return -1;
const char *winName = "Sample";
cvNamedWindow(winName, CV_WINDOW_AUTOSIZE);
CvSize size = cvGetSize(image_left);
if (0) { //切り替え
CvMat *disparity_left= cvCreateMat(size.height, size.width, CV_16S);
CvMat *disparity_right= cvCreateMat(size.height, size.width, CV_16S);
CvStereoGCState *state= cvCreateStereoGCState(16, 2);
cvFindStereoCorrespondenceGC(image_left, image_right, disparity_left, disparity_right, state, 0);
cvReleaseStereoGCState(&state);
CvMat *disparity_left_visual= cvCreateMat(size.height, size.width, CV_8U);
cvConvertScale(disparity_left, disparity_left_visual, -16);
cvShowImage(winName, disparity_left_visual);
}
else {
CvMat *disparity= cvCreateMat(size.height, size.width, CV_16S);
CvStereoBMState *state= cvCreateStereoBMState(CV_STEREO_BM_BASIC, 16);
cvFindStereoCorrespondenceBM(image_left, image_right, disparity, state);
cvReleaseStereoBMState(&state);
CvMat *disparity_visual= cvCreateMat(size.height, size.width, CV_8U);
cvConvertScale(disparity, disparity_visual, 1);
cvShowImage(winName, disparity_visual);
}
cvWaitKey(0);
return 0;
}
2.5 ビルド
2.6 できたのをコマンドラインで引数2つ(ステレオとなるイメージ)をつけて実行> ./Sample imageLeft.jpg imageRight.jpg
以上
0 件のコメント:
コメントを投稿