FC2ブログ

日向ぼっこ日記

東間 侑のちょっとした日記です。

2018-11

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

卒論提出まであと6日





プログラムなんて・・・プログラムなんて・・・







щ(,ΦДΦ)ш<大っ嫌いじゃぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ!!!!!!!!!!!





プログラムなんか、この世から無くなってしまえば良いのに・・・(怨辛

研究のプログラムを母方の実家で解析して、自分でプログラム作ってみたんだけど、まったく持って




うんともすんともいわねぇよ・・・(汗



おかしいんだぜ、サンプルプログラムから必要なところだけ抜粋してきただけなのに、エラーが50個とか出るんだぜ?
おかしいだろうよ。だってサンプルプログラムは快調に動いているのに、なぜ、ただコピペしただけのプログラムが動かない???

意味がわからんって・・・。

もう本気、どうしたら良いのかわからないんだZE ミ☆

でも12日にゼミ担の所に論文持って行かなきゃいけないっていう・・・(汗


うぅ~、頭痛い・・・。


いや、論文自体はほぼ95%出来てるんだって。
あとは出力結果の所だけだってのに、どないせいっちゅうねん・・・。
捏造するわけにもいかんしねぇ・・・。

はぁ。。。とりあえず、明日先生に電話して聞いてみるか・・・(汗
いや、電話は面倒だからメールで送ってみよう・・・(苦w


だれかーたすけてくださぁーい!!


ちなみにプログラムはこんな感じ。

//------------------------------------------------------------
// ex01
// ARToolkit-基本のプログラム
//------------------------------------------------------------
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <fcntl.h>
#include <GL\gl.h>
#include <GL\glut.h>
#include <AR\gsub.h>
#include <AR\video.h>
#include <AR\param.h>
#include AR\ar.h>

//------------------------------------------------------------
/* カメラ構成 */
char *vconf = "Data\\WDM_camera_flipV.xml"; // 既定のカメラ構成
int xsize; // ウィンドウサイズ
int ysize; // ウィンドウサイズ
int thresh = 100; // 閾値
int count = 0; // 処理フレーム数

/* カメラパラメータ */
char *cparam_name = "Data\\camera_para.dat"; // 既定のカメラパラメータ
ARParam cparam; // カメラパラメータ

/* パターンファイル */
char *patt_name = "Data\\patt.hiro"; // パターンファイル名
int patt_id; // パターンID
double patt_width = 80.0; // パターンの幅(mm単位)
double patt_center[2] = {0.0, 0.0}; // パターンの中心
double patt_trans[3][4]; // 座標変換行列

/*テクスチャ・マッピング*/
GLuint texname[1]; //テクスチャオブジェクトの名前
unsigned char dat[128*128*3]; //ピクセルデータ
GLubyte teximg[128][128][4]; //テクスチャデータ用配列
//------------------------------------------------------------
static void init(void);
static void mainLoop(void);
static void draw(void);
static void setupLighting(void);
static void setupMaterial(void);
static void cleanup(void);
static void keyEvent(unsigned char key, int x, int y);
static void setupTexture(void);
static void loadBmp(char *fname, unsigned char *dat);

//------------------------------------------------------------
// メイン関数
//------------------------------------------------------------
int main(int argc, char **argv)
{
/* GLUTの初期化 */
glutInit(&argc, argv);

/* ARアプリケーションの初期化*/
init();

/*テクスチャの作成*/
setupTexture();

/* キャプチャ開始 */
arVideoCapStart();

/* メインループの呼び出し */
argMainLoop( NULL, keyEvent, mainLoop );
return (0);
}



//------------------------------------------------------------
// 初期化処理
//------------------------------------------------------------
static void init( void )
{
ARParam wparam; // カメラパラメータ

/* ビデオデバイスの設定 */
if( arVideoOpen( vconf ) < 0 ) exit(0);

/* ウィンドウサイズの取得 */
if( arVideoInqSize(&xsize, &ysize) < 0 ) exit(0);
printf("Image size (x,y) = (%d,%d)\n", xsize, ysize);

/* カメラパラメータの読み込み */
if( arParamLoad(cparam_name, 1, &wparam) < 0 ) {
printf("Camera parameter load error !!\n");
exit(0);
}

/* カメラパラメータの初期化 */
arParamChangeSize( &wparam, xsize, ysize, &cparam );
arInitCparam( &cparam );
printf("*** Camera Parameter ***\n");
arParamDisp( &cparam );

/* パターンファイルの読み込み */
if( (patt_id=arLoadPatt(patt_name)) < 0 ) {
printf("pattern load error !!\n");
exit(0);
}

/* gsubライブラリの初期化 */
argInit( &cparam, 1.0, 0, 0, 0, 0 );
}

//------------------------------------------------------------
// メインループ処理
//------------------------------------------------------------
static void mainLoop(void)
{
ARUint8 *dataPtr; // カメラ画像
ARMarkerInfo *marker_info; // マーカー検出用の情報
int marker_num; // マーカーらしき部分の個数
int j, k; // ループカウンタ

/* カメラ画像の取得 */
if( (dataPtr = (ARUint8 *)arVideoGetImage()) == NULL ) {
arUtilSleep(2);
return;
}
if( count == 0 ) arUtilTimerReset();
count++;

/* キャプチャした画像の表示 */
argDrawMode2D();
argDispImage( dataPtr, 0, 0 );

/* マーカーの検出 */
if( arDetectMarker(dataPtr, thresh, &marker_info, &marker_num) < 0 ) {
cleanup();
exit(0);
}

/* 次の画像をキャプチャ */
arVideoCapNext();

/* マーカーの一致度を判定 */
k = -1;
for( j = 0; j < marker_num; j++ ) {
if( patt_id == marker_info[j].id ) {
if( k == -1 ) k = j;
else if( marker_info[k].cf < marker_info[j].cf ) k = j;
}
}

/* マーカーが見つからなかったとき */
if( k == -1 ) {
argSwapBuffers();
return;
}

/* 座標変換行列を取得 */
arGetTransMat(&marker_info[k], patt_center, patt_width, patt_trans);

/* 3次元オブジェクトの描画処理 */
draw();

/* バッファの内容を出力 */
argSwapBuffers();
}
//------------------------------------------------------------
// 3次元オブジェクトの描画処理
//------------------------------------------------------------
static void draw( void )
{
double gl_para[16]; // ARToolkit->OpenGL変換行列

/* 3次元オブジェクトの描画準備 */
argDrawMode3D();
argDraw3dCamera(0, 0);

/*テクスチャマッピング*/
glEnable(GL_TEXTURE_2D);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

/* 隠面消去 */
glClearDepth(1.0); // デプス・バッファの消去値
glClear(GL_DEPTH_BUFFER_BIT); // デプス・バッファの初期化
glEnable(GL_DEPTH_TEST); // 隠面消去・有効
glDepthFunc(GL_LEQUAL); // デプス・テスト

/* 座標変換行列の読み込み */
argConvGlpara(patt_trans, gl_para); // ARToolkit -> OpenGL
glMatrixMode(GL_MODELVIEW); // 行列変換モード・モデルビュー
glLoadMatrixd(gl_para); // 読み込む行列を指定

/* ライティング */
setupLighting(); // ライトの定義
glEnable(GL_LIGHTING); // ライティング・有効
glEnable(GL_LIGHT0); // ライト0・オン
glEnable(GL_LIGHT1); // ライト1・オン

/* オブジェクトの材質 */
setupMaterial();

/* 3次元オブジェクトの描画 */
glBindTexture(GL_TEXTURE_2D, texname[0]);
glNormal3f(0.0,-1.0,0.0);
glBegin(GL_QUADS);
glTexCoord2d(0.0,0.0); glVertex3f(0.0,0.0,0.0);
glTexCoord2d(1.0,0.0); glVertex3f(50.0,0.0,0.0);
glTexCoord2d(1.0,1.0); glVertex3f(50.0,0.0,50.0);
glTexCoord2d(0.0,1.0); glVertex3f(0.0,0.0,50.0);
glEnd();

/* 終了処理 */
glDisable(GL_LIGHTING); // ライティング・無効
glDisable(GL_DEPTH_TEST); // デプス・テスト・無効
}
//------------------------------------------------------------
// ライティング
//------------------------------------------------------------
static void setupLighting(void)
{
/* ライトの定義 */
GLfloat lt0_position[] = {100.0, -200.0, 200.0, 0.0}; // ライト0の位置
GLfloat lt0_ambient[] = {0.1, 0.1, 0.1, 1.0}; // 環境光
GLfloat lt0_diffuse[] = {0.8, 0.8, 0.8, 1.0}; // 拡散光
//
GLfloat lt1_position[] = {-100.0, 200.0, 200.0, 0.0}; // ライト1の位置
GLfloat lt1_ambient[] = {0.1, 0.1, 0.1, 1.0}; // 環境光
GLfloat lt1_diffuse[] = {0.8, 0.8, 0.8, 1.0}; // 拡散光

/* ライトの設定 */
glLightfv(GL_LIGHT0, GL_POSITION, lt0_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, lt0_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lt0_diffuse);
//
glLightfv(GL_LIGHT1, GL_POSITION, lt1_position);
glLightfv(GL_LIGHT1, GL_AMBIENT, lt1_ambient);
glLightfv(GL_LIGHT1, GL_DIFFUSE, lt1_diffuse);
}
//------------------------------------------------------------
// オブジェクトの材質
//------------------------------------------------------------
static void setupMaterial(void)
{
/* オブジェクトの材質 */
GLfloat mat_ambient[] = {0.0, 0.0, 1.0, 1.0}; // 材質の環境光
GLfloat mat_specular[] = {0.0, 0.0, 1.0, 1.0}; // 鏡面光
GLfloat mat_shininess[] = {50.0}; // 鏡面係数
//
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
}
//------------------------------------------------------------
// 終了処理
//------------------------------------------------------------
static void cleanup(void)
{
/* 終了処理 */
arVideoCapStop(); // キャプチャを停止
arVideoClose(); // ビデオデバイスを終了
argCleanup(); // ARToolkitの終了処理
}
//------------------------------------------------------------
// キーイベント処理
//------------------------------------------------------------
static void keyEvent( unsigned char key, int x, int y)
{
/* ESCキーで終了 */
if( key == 0x1b ) {
printf("*** %f (frame/sec)\n", (double)count/arUtilTimer());
cleanup();
exit(0);
}
}
//------------------------------------------------------------
// テクスチャの作成
//------------------------------------------------------------
static void setupTexture(void)
{
int h = 128; //イメージの高さ
int w = 128; //イメージの幅
int i,j;//ループカウンタ

/*ピクセル格納フォーマット*/
glPixelStorei(GL_UNPACK_ALIGNMENT,4);//メモリのアクセス設定、4バイト毎

/*テクスチャオブジェクトの作成*/
glGenTextures(1,texname);

/*bmpデータの読み込み*/
loadBmp("Texture\\Image.bmp",dat);

//--テクスチャの設定
for(j=0;j for(i=0;i teximg[j][i][0]=(GLubyte)dat[j*w*3+i*3+2]; //R値
teximg[j][i][1]=(GLubyte)dat[j*w*3+i*3+1]; //G値
teximg[j][i][2]=(GLubyte)dat[j*w*3+i*3+0]; //B値
teximg[j][i][3]=(GLubyte)255; //アルファ値
}
}

//--テクスチャオブジェクトの作成
glBindTexture(GL_TEXTURE_2D,texname[0]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); //拡大方法
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); //縮小方法
glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,
128,128,0,
GL_RGBA,GL_UNSIGNED_BYTE,teximg); //2次元テクスチャの定義
}

//---------------------------------------------------------------------------
// BMPの読み込み
//---------------------------------------------------------------------------
static void loadBmp(char *fname, unsigned char *dat)
{
FILE *fr; // ファイルポインタ
unsigned char buf[54]; // バッファ

/* BMPファイル・オープン */
fr=fopen(fname,"rb" );
if(fr==NULL ){
fclose(fr);
printf("error - file cannot open !\n");
return ;
}

/* BITMAPFILEHEADER, BITMAPINFOHEADERの読み込み */
fread(buf,sizeof(char),54,fr);

/* ピクセルデータの読み込み */
fread(dat,sizeof(unsigned char),128*128*3,fr);
fclose(fr);
}


んで、エラーがこんな感じ・・・。

------ ビルド開始: プロジェクト: texturetest, 構成: Release Win32 ------
コンパイルしています...
cl : コマンド ライン warning D9035 : オプション 'Wp64' の使用は現在推奨されていません。今後のバージョンからは削除されます。
texturetest.c
C:\ARToolKit\include\AR/ar.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
C:\ARToolKit\include\AR/ar.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
C:\ARToolKit\include\AR/ar.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
C:\ARToolKit\include\AR\ar.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
.\texturetest.c(320) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(237) : 'fopen' の宣言を確認してください。
リンクしています...
LINK : warning LNK4075: /INCREMENTAL は /OPT:ICF の指定によって無視されます。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argMainLoop が関数 _main で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoCapStart が関数 _main で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argInit が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arLoadPatt が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arParamDisp が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arInitCparam が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arParamChangeSize が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arParamLoad が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoInqSize が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoOpen が関数 _init で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arGetTransMat が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argSwapBuffers が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoCapNext が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arDetectMarker が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argDispImage が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argDrawMode2D が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arUtilTimerReset が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arUtilSleep が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoGetImage が関数 _mainLoop で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argConvGlpara が関数 _draw で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argDraw3dCamera が関数 _draw で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argDrawMode3D が関数 _draw で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _argCleanup が関数 _cleanup で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoClose が関数 _cleanup で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル __imp__arVideoCapStop が関数 _cleanup で参照されました。
texturetest.obj : error LNK2019: 未解決の外部シンボル _arUtilTimer が関数 _keyEvent で参照されました。
MSVCRT.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
Release\texturetest.exe : fatal error LNK1120: 外部参照 27 が未解決です。
ビルドログは "file://c:\ARToolKit\EX2008\texturetest\Release\BuildLog.htm" に保存されました。
texturetest - エラー 28、警告 7



コンパイルは通ってるっぽいんだけど、なにやらリンクとやらがうまくいっていないような感じ・・・。
プログラムの中なら、なんとかエラー文を読んで直すんだけど、
リンクとか、直し方しらんし・・・。

はぁ・・・。どうすればいいのやら・・・。とりあえず、先生からの返信待ちだなぁ・・・。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

コメント

承認待ちコメント

このコメントは管理者の承認待ちです

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://yuazuma.blog50.fc2.com/tb.php/178-7363c068
この記事にトラックバックする(FC2ブログユーザー)

 | ホーム | 

FC2Ad

 

カレンダー

10 | 2018/11 | 12
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。