opencv-linux Linux 1.1pre1 % tar zxvf opencv-1.1pre1.tar.gz % cd opencv %./configure --with-apps % make % su # make install 2.2 Windows Windows
|
|
|
- ようじろう よどぎみ
- 7 years ago
- Views:
Transcription
1 OpenCV Development of Image Understanding Programs by using the OpenCV Library 1 Takekazu KATO 1 Kyoto University This paper introduces OpenCV library that is an open source library for computer vision and image processing. It provides many fundamental operations for image processing and useful computer vision algorithms. This paper describes how to install and setup the OpenCV library, and explains programming for the OpenCV library with some example programs. 1. OpenCV Intel BSD 1 SouceForge OpenCV RGB 8bit 8bit 8bit ROI (Region of Interest) COI (Channel of Interest) OpenCV CXCORE OpenCV CV 5 Image Processing Structural Analysis Motion Analysis and Object Tracking Pattern Recognition Camera Calibration and 3D Reconstruction 3 ML : [email protected] 1 BSD HighGUI GUI OpenCV Linux Windows Linux Fedora 10 gcc Windows WindowsXP SP2 Visual C OpenCV Linux Windows OpenCV 2.1 Linux Linux Fedora 10 Linux OpenCV OpenCV gtk+ 2.x, libjpeg, zlib, libpng, libtiff, v4l Fedora yum OpenCV OpenCV Fedora yum # yum install opencv opencv-devel Fedora 10 opencv OpenCV Linux OpenCV 1
2 opencv-linux Linux 1.1pre1 % tar zxvf opencv-1.1pre1.tar.gz % cd opencv %./configure --with-apps % make % su # make install 2.2 Windows Windows Windows 1.1pre1 SourceFourge opencv-win OpenCV 1.1pre1.exe 2.3 Mac OS X Mac OSX Xcode DMG MacPorts 2, Fink 3 Linux Linux Linux 2.4 OpenCV OpenCV Linux /usr/local/shared/doc/index.htm Windows C:\Program Files\OpenCV\docs\index.htm PDF PDF OpenCV Intel [Intel Corp.] OpenCV FAQ Yahoo Groups OpenCV [Yahoo] OpenCV opencv.jp[ ] OpenCV- 1.0 OpenCV-1.1pre1 OpenCV [ 07] OpenCV OpenCV [David A. Forsyth 07] [ 09] CVIM CV Windows cygwin [ ] cygwin USB [ ] Tips Linux aru technote[aru] Linux OpenCV Yonekura [Yonekura] Ruby OpenCV 3. OpenCV 3.1 Linux /usr/local/share/opencv/samples build.sh %cp -r /usr/local/shared/opencv/samples./ %cd samples/c %export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig %sh build.sh 3 pkg-config bash sh tcsh csh %setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig pkg-config build.sh #!/bin/sh for i in *.c; do echo "compiling $i" g++ -O3 -I/usr/local/include/opencv -o \ basename $i.c $i -L/usr/local/lib -lcxcore \ -lcv -lhighgui -lcvaux; done Windows C:\Program Files\OpenCV\samples\c 3.2 OpenCV
3 The 23rd Annual Conference of the Japanese Society for Artificial Intelligence, 個のサンプルのうち camshiftdemo, facedetect, laplace, lkdemo, motempl は 動画を対象としたプログラムであり カ メラを繋いでリアルタイムに処理を行なったり AVI ファイル などを読み込ませて処理させることができる 追跡を開始する 登録された 緑色の点で表わされる (図 1) また キーボードから r をタイプすると自動で追跡しやす い特徴点を検出し 追跡を開始する c をタイプすると全て の特徴点を消去する ESC キーで終了できる 表 1: OpenCV に添付されているサンプルプログラム プログラム名 アルゴリズム camshiftdemo contours convexhull delaunay demhist distrans drawing edge facedetect ffilldemo fitellipse kalman kmeans laplace lkdemo minarea morphology motempl pyramid segmentation squares CAMSHIFT [Bradski 98] による対象追跡 二値画像の輪郭検出 凸包の計算 ドロネーグラフの計算 ヒストグラム変換 距離変換 図形の描画 Canny エッジ抽出 [Canny 86] Cascade 型識別器と Adaboost [Viola 01] による顔検出 領域の塗りつぶし 楕円フィッティング カルマンフィルタ K-means クラスタリング 画像の空間微分 LK 法 [Lucas 81] による特徴点追跡 外接矩形の計算 Mathmatical Morphology モーションテンプレート 領域分割 図 1: lkdemo の実行画面 facedetect の実行 facedetect は Viola と Michael [Viola 01] が提案した Adaboost によって学習した Cascade 型の識別器によって 顔を検出するアルゴリズムを実装したプログラムである あら かじめ顔画像と非顔画像のトレーニングデータを与えて学習し た識別器を用いて 入力画像から顔画像を検出するアルゴリズ ムであり高速 かつ安定に動作することから 顔検出 認識の 分野では近年注目されている手法である facedetect では まず顔画像と非顔画像を学習する必要が あるが ここではその方法は割愛し OpenCV に添付されて いる あらかじめ学習した識別器の情報を用いる方法を紹介 する 学習方法について興味のある人は ソースファイルの apps/haartraining/doc/haartraining.htm に学習方法の マニュアルがあるので そちらを参考にされたい facedetect を実行するには 識別器の情報を指定する必要が ある 識別器の情報は Linux 版では /usr/local/share/opencv/haarcascades Windows では C:\Program Files\OpenCV\data\haarcascades に 置 い て あるので この中の XML ファイルのうち好きなファイル を 指 定 す る と 良 い 例 え ば 正 面 顔 を 学 習 し た haarcascade frontalface alt.xml を指定するには以下のように実行 する %./facedetect --cascade=/usr/local/share\ /opencv/haarcascades/haarcascade_frontal_alt.xml 長方形検出 ここでは 特徴点追跡のプログラム lkdemo と 顔検出のプ ログラム facedetect を例に挙げて使い方を説明する これらの プログラムでは カメラを使うことができる 使用できるカメ ラ キャプチャーカードは Linux の場合では Video for Linux に対応するキャプチャーカード もしくは IEEE1394 経由で キャプチャーする DCAM 対応のカメラである Windows の 場合は Video for Windows (VFW) 対応のカメラ キャプ チャーカードを使用できる カメラ キャプチャーカードの設 定方法については ここでは割愛する 使用できるカメラを 持っていない場合は AVI ファイルを読み込ませて処理させ ることもできる Windows の場合には facedetect.cmd という名前でオプショ ンを付けて実行するバッチファイルが用意してあるので こ れを適宜書換えてダブルクリックして実行すれば良い なお カメラから画像を取り込む変りに AVI ファイルから読み込む には lkdemo と同様に 最後にファイル名を指定すれば良い facedetect を実行すると lkdemo と同様にウィンドウが開 き入力画像が表示され 図 2 のように 顔を検出すると赤い 枠で表示される この図のように明さや顔の大きさ 多少の顔 の向きが異なっていても検出することができる lkdemo の実行 lkdemo は LK 法と呼ばれる Lucas と Kanade [Lucas 81] によって提案された特徴点追跡のアルゴリズムを実装したもの である LK 法はステレオマッチング Structure from motion オプティカルフローの計算 ロボットの動物体検出など様々な 場面で利用されている lkdemo の実行方法は カメラから画像を取り込む場合は 引数なしで./lkdemo と実行すれば良い Windows の場合 では lkdemo.exe をダブルクリックしてもいい AVI ファイ ルから画像を読み込む場合は AVI ファイルを引数として./lkdemo hoge.avi として実行する Windows でもコマン ドプロンプトを開いて同様に実行できる lkdemo を実行すると ウィンドウが開き 取り込んだ画像 が表示される この画像上でマウスの左ボタンをクリックする と 特徴点を追加 削除することができ 追加された特徴点の 図 2: facedetect の実行画面 3
4 4. OpenCV OpenCV OpenCV #include <stdio.h> #include <stdlib.h> #include <stdint.h> // OpenCV #include <cv.h> #include <highgui.h> int main(int argc, char **argv){ IplImage *image; // uint8_t *pixel; int x,y,c; // % g++ pkg-config --cflags opencv Example1.c \ -o Example1 pkg-config --libs opencv pkg-config Windows Visual C++ Win32 Console Application Example1.c OpenCV ( 4(a),(b)) cxcore.lib, cv.lib, highgui.lib ( 4(c)) // if(argc<3) { fprintf(stderr,"usage:%s input output\n", argv[0]); exit(1); image = cvloadimage(argv[1],1); for(y=0;y<image->height;y++) for(x=0;x<image->width;x++){ (a) // (x,y) pixel = image->imagedata + y*image->widthstep + x*image->nchannels; for(c=0;c<image->nchannels;c++) pixel[c] = 255-pixel[c]; (b) cvsaveimage(argv[2],image); // cvreleaseimage(&image); return 0; 3: (Example1.c) 3 Linux Windows 4.1 Linux (c) 4: Visual C++ Example1 BMP, JPEG, PNG, PNM OpenCV lena.jpg 4
5 The 23rd Annual Conference of the Japanese Society for Artificial Intelligence, 2009 %./Example1 lena.jpg lena-nega.jpg (a) 入力画像 (b) 出力画像 プログラムの解説 cv.h には OpenCV の関数の宣言や 各種構造体の定義など が収められている OpenCV ライブラリを使ったプログラム を書くには 必ずこのファイルをインクルードする また次の highgui.h は OpenCV に附属の GUI ツールキットや 画像 の保存 読み込みなどの各種ユーティリティ関数の宣言が含 まれている Example1.c では cvsaveimage, cvloadimage を使うためにこのファイルをインクルードしている IplImage 構造体と画素へのアクセス 次に main 関数を見ていくと IplImage へのポインタ型の変 数が定義されている IplImage は OpenCV で画像を扱うた めの構造体であり この構造体には画像サイズや画素の型 画 像データへのポインタなどの情報が収められている 図 6 に IplImage 構造体の定義の一部を示す なお この定義では説 明しないメンバは省略しており メンバ定義の順序やコメント は適宜書換えてある typedef struct _IplImage { int nchannels; /* チャンネル数 */ int width; /* 画像の幅 */ int height; /* 画像の高さ */ int imagesize; /* 画像のサイズ (バイト数) */ char *imagedata;/* 画像データへのポインタ */ int widthstep; /* 1 ラインのバイト数 */ /*... 省略... */ IplImage; image = cvloadimage("ファイル名",iscolor) cvsaveimage("ファイル名",image) cvloadimage() は指定したファイルから画像を読み込み IplImage 構造体へのポインタを返す 最後の引数 iscolor は カラー画像として読み込むか 濃淡画像として読み込む かのフラグであり 正の整数を指定するとカラーとして読 み込み 0 を指定すると濃淡画像として読み込む また 負 の整数を指定した場合は画像ファイルから自動で判別する cvloadimage() は 画像を収める領域を確保して返すので プログラムで使い終ったときには cvreleaseimage() でメモ リ領域を解放する必要がある cvsaveimage() は 指定したファイルに画像を保存する関 数である このときのファイルフォーマットは ファイル名か ら自動判定される 新しい画像の作成 Example1.c では 画像をファイルから読み込んでいたが 新しく画像を作成することもできる 新しく画像を作成するに は cvcreateimage() を使う OpenCV のヘッダファイル 図 3 のプログラムを順に解説していく まずは 最初のヘッ ダファイルのインクルードを見て欲しい // OpenCV のヘッダファイル #include <cv.h> #include <highgui.h> IplImage 構造体のメンバ widthstep は 画像の 1 ラインの バイト数である また nchannels は色成分の数であり 例え ば RGB のカラー画像なら 3 濃淡画像なら 1 となる 上記の式で計算した pixel のアドレスから連続した領域に画 素の各色値が収められている 例えば RGB カラー画像なら pixel[0] が赤色成分 pixel[1] が緑色成分 pixel[2] が青 色成分となる 画像のロードとセーブ cvloadimage() と cvsaveimage() は それぞれファイルか らの画像の読み込みと ファイルへの保存の関数である 使い 方は以下の通りである 図 5: Example1 の実行結果 (カラーページ参照) 4.2 pixel = image->imagedata + y 座標 * image->widthstep + x 座標 * image->nchannels cvcreateimage(cvsize(画像の幅, 画像の高さ), 画素 の型 チャンネル数) cvcreateimage() は指定された引数に基づいて画像を作成し IplImage 構造体へのポインタを返す 画素の型は 各画素を どのような型として扱うかを示すフラグであり 表 2 に示す 8 種類のマクロで指定することができる 例えば 640x480 の RGB カラー画像で各色成分が 8bit 符号なしの画像を作成す るには次のように指定する IplImage *new_image; new_image = cvcreateimage(cvsize(640,480), IPL_DEPTH_8U 3); 画像処理関数の利用 Example1.c では 画像の各画素を直接アクセスして画像処 理を行ったが OpenCV には各種画像処理関数が豊富に用意 されており 画像処理プログラムを手軽に作成することがで きる 図 7 に示すプログラムは Example1.c の画像の処理部分を 変更し Canny のエッジ抽出 [Canny 86] の関数を使用した ものである コンパイル方法 実行方法は Example1.c と同様 である 図 6: IplImage 構造体の一部 これらのメンバを使って 画像の各画素へ直接アクセスす ることができる 画像のデータは IplImage 構造体のメンバ imagedata に収められており 画像中のある座標の画素が収 められているメモリアドレスの計算方法は次のとおりである 4 このプログラムは各色成分が 8bit 符号なしと仮定しているが そ れ以外の場合は適切な型のポインタでアクセスする必要がある ま た 画素毎の色成分を連続した領域に収めない扱い方も存在する 詳しくはリファレンスマニュアル参照のこと 5
6 2: OpenCV IPL_DEPTH_8U 8bit (uint8 t) IPL_DEPTH_8S 8bit (int8 t) IPL_DEPTH_16U 16bit (uint16 t) IPL_DEPTH_16S 16bit (int16 t) IPL_DEPTH_32U 32bit (uint32 t) IPL_DEPTH_32S 32bit (int32 t) IPL_DEPTH_32F 32bit (float) IPL_DEPTH_64F 64bit (doulbe) cvloadimage() 0 cvcanny() 3 Canny 8 OpenCV IplImage *image,*edge; image = cvloadimage(argv[1],0); edge = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvcanny(image,edge,10,128,3); cvsaveimage(argv[2],edge); 7: (Example2.c ) 8: Example2.c 5. GUI OpenCV GUI HighGUI HighGUI GUI GUI GUI Linux Windows Example3.c cvtreshold() ( ) Example1.c Linux Windows GUI HighGUI cvnamedwindow() cvcreatetrackbar() ( ) cvnamedwindow(wndname,1); cvcreatetrackbar("threshold", wndname, &thresh, 255, on_trackbar); on_trackbar(0); // q while(cvwaitkey(0)!= q ); wndname thresh int 255 on tracker on tracker char *wndname; // IplImage *image,*binary; // int thresh = 128; void on_trackbar(int t){ cvthreshold(image,binary,(double)thresh,255, CV_THRESH_BINARY); cvshowimage(wndname,binary); cvtreshold() thresh cvshowimage() wndname main cvwaitkey(0) while(cvwaitkey(0)!= q ); q cvwait- Key(0) if 6. cvcapture OpenCV cvcapture Linux Windows Linux Video for Linux 6
7 #include <stdio.h> #include <stdlib.h> #include <stdint.h> // OpenCV #include <cv.h> #include <highgui.h> char *wndname; // IplImage *image,*binary; // int thresh = 128; void on_trackbar(int t){ cvthreshold(image,binary,(double)thresh, 255,CV_THRESH_BINARY); cvshowimage(wndname,binary); int main(int argc, char **argv){ uint8_t *pixel; int x,y,c; // // if(argc<2) { fprintf(stderr,"usage:%s input output\n", argv[0]); exit(1); wndname=argv[0]; image = cvloadimage(argv[1],0); binary = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvnamedwindow(wndname,1); cvcreatetrackbar("threshold", wndname, &thresh, 255, on_trackbar); on_trackbar(128); // q while(cvwaitkey(0)!= q ); cvreleaseimage(&image); cvreleaseimage(&binary); return 0; 9: GUI (Example3.c) IEEE1394 DCAM Windows Video for Windows MIL(Matrox Image Library) [aru, Knorr, Sakurai] 11 Example3.c (a) Linux (b) Windows 10: Example3.c CvCapture cvcapturefromcam CvCapture *capture=0; // capture = cvcapturefromcam(0); cvcapturefromcam 0 OpenCV cvcapturefromavi( ) AVI cvqueryframe() image = cvqueryframe(capture); CvCapture IplImage cvcapturefromcam cvwaitkey() ( ) (0 ) 7. Intel OpenCV OpenCV GUI OpenCV 7
8 #include <stdio.h> #include <stdlib.h> // OpenCV #include <cv.h> #include <highgui.h> int main(int argc, char **argv){ char *wndname; // // IplImage *image=0,*gray=0,*binary=0; int thresh = 128; CvCapture *capture=0; // capture = cvcapturefromcam(0); wndname=argv[0]; cvnamedwindow(wndname,0); cvcreatetrackbar("threshold", wndname, &thresh, 255, NULL); // q while(cvwaitkey(10)!= q ){ image = cvqueryframe(capture); if(!image) break; if(!gray) gray = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); if(!binary) binary = cvcreateimage(cvgetsize(image), IPL_DEPTH_8U,1); cvcvtcolor(image,gray,cv_bgr2gray); // cvthreshold(gray,binary,(double)thresh,255, CV_THRESH_BINARY); [Intel Corp.] Intel Corp., : Open Source Computer Vision Library, opencv/ [Yahoo] Yahoo, : Yahoo Groups OpenCV, Yahoo! Inc., [ ] OpenCV on cygwin, [ ], ac.jp/~nishigu/server/ [aru] aru, : OpenCV - 1.1pre, contents/other/technote/index.php/opencv - 1.1pre [Yonekura] Yonekura, M.: Ruby/OpenCV, [Knorr] Knorr, G.: Video4linux, /v4l2/ [Sakurai] Sakurai, T.:, [Bradski 98] Bradski, G.: Computer vision face tracking as a componento of a perceptual user interface, in Workshop on Applications of Computer Vision, pp (1998) [Canny 86] Canny, J.: A. Computational Approach to Edge Detection, IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol. 8, No. 6, pp (1986) [David A. Forsyth 07] David A. Forsyth ( ), Jean Ponce ( ), ( ), (2007) [Lucas 81] Lucas, B. and Kanade, T.: An Iterative Image Registration Technique with an Application to Stereo Vision, in Proc. of 7th International Joint Conference on Artificial Intelligence (IJCAI), pp (1981) cvshowimage(wndname,binary); cvreleaseimage(&gray); cvreleaseimage(&binary); return 0; [Viola 01] Viola, P. and Jones., M. J.: Rapid Object Detection using a Boosted Cascade of Simple Features., in Proc. of Computer Vision and Pattern Recognition (CVPR2001), Vol. 1, pp (2001) [ 07] OpenCV OpenCV, (2007) 11: (Example4.c) OpenCV [ 09], 1 Level Set,Graph Cut,Particle Filter,Tensor,AdaBoost (CVIM ), (2009) [ ],,, opencv.jp, 8
OpenCV IS Report No Report Medical Information System Labratry
OpenCV 2014 8 25 IS Report No. 2014090201 Report Medical Information System Labratry Abstract OpenCV OpenCV 1............................ 2 1.1 OpenCV.......................... 2 1.2......................
スライド 1
知能制御システム学 画像処理の基礎 (1) 基礎概念と OpenCV の導入 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 2012.06.12 ディジタル画像 撮像面における入射光強度のアナログ分布 2 次元離散化 ( 画素 への分割 ) 量子化 (A/D 変換 ) ディジタル画像
2 Eclipse 2.1 Eclipse 1. Eclipse 2. 3 ( 4) E:Yworkspace OK 3 Eclipse 4 3. Eclipse 5 5 Eclipse Eclipse 2. 7 C 2
3: 1 1. PC 2. Phantasys 201209 ( 1) 1 PC 2 Windows 3. Windows ID ( 2) 4. Web (Firefox Internet Explorer) 5. A 6. http:// http://www.cv.ics.saitama-u.ac.jp/yosinori/lecture/seminar/ Web 1 7. USB PC USB
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
1 (PCA) 3 2 P.Viola 2) Viola AdaBoost 1 Viola OpenCV 3) Web OpenCV T.L.Berg PCA kpca LDA k-means 4) Berg 95% Berg Web k-means k-means
Web, Web k-means 62% Associating Faces and Names in Web Photo News Akio Kitahara and Keiji Yanai We propose a system which extracts faces and person names from news articles with photographs on the Web
3 2 2 (1) (2) (3) (4) 4 4 AdaBoost 2. [11] Onishi&Yoda [8] Iwashita&Stoica [5] 4 [3] 3. 3 (1) (2) (3)
(MIRU2012) 2012 8 820-8502 680-4 E-mail: {d kouno,shimada,endo}@pluto.ai.kyutech.ac.jp (1) (2) (3) (4) 4 AdaBoost 1. Kanade [6] CLAFIC [12] EigenFace [10] 1 1 2 1 [7] 3 2 2 (1) (2) (3) (4) 4 4 AdaBoost
画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう
第 14 回 応用 情報処理演習 ( テキスト : 第 10 章 ) 画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう 特定色の画素の検出 ( テキスト 134 ページ ) 画像データが保存されているファイルを読み込んで, 特定色の画素の位置を検出するプログラムを作成しなさい 元画像生成画像 ( 結果の画像 )
スライド 1
知能制御システム学 画像追跡 (1) 特徴点の検出と追跡 東北大学大学院情報科学研究科鏡慎吾 swk(at)ic.is.tohoku.ac.jp 2008.07.07 今日の内容 前回までの基本的な画像処理の例を踏まえて, ビジュアルサーボシステムの構成要素となる画像追跡の代表的手法を概説する 画像上の ある点 の追跡 オプティカルフローの拘束式 追跡しやすい点 (Harris オペレータ ) Lucas-Kanade
TA TA TA abcdefgh abcdefgh C PC Wii bluetooth 2.2 Bluetooth USB Princeton PTM-UBT3S 1 1
1 22 (2) TA: 2010 12 13 1 OpenGL Wii Wii OpenGL USB (3DCG) 1.1 http://www.cyber.t.u-tokyo.ac.jp/~kuni/enshu2010/ URL USB 2 2 1.2 TA 16 15 TA TA [email protected] 20101213 abcdefgh abcdefgh
ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識
ARToolKit プログラムの仕組み 1: ヘッダファイルのインクルード 2: Main 関数 3: Main Loop 関数 4: マウス入力処理関数 5: キーボード入力処理関数 6: 終了処理関数 3: Main Loop 関数 1カメラ画像の取得 2カメラ画像の描画 3マーカの検出と認識 4 次の画像のキャプチャ指示 5マーカの信頼度の比較 6マーカの位置 姿勢の計算 7バッファの内容を画面に表示
Taro-ポインタ変数Ⅰ(公開版).j
0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 - 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している
(3.6 ) (4.6 ) 2. [3], [6], [12] [7] [2], [5], [11] [14] [9] [8] [10] (1) Voodoo 3 : 3 Voodoo[1] 3 ( 3D ) (2) : Voodoo 3D (3) : 3D (Welc
1,a) 1,b) Obstacle Detection from Monocular On-Vehicle Camera in units of Delaunay Triangles Abstract: An algorithm to detect obstacles by using a monocular on-vehicle video camera is developed. Since
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
PowerPoint プレゼンテーション
プログラミング応用演習 第 5 回演習 前回までのお話 ポインタ ポインタを用いた文字列処理 構造体 ファイル 再帰的構造体 リスト構造 動的メモリ管理 今日のお題 ポインタやファイルなど これまでの内容の練習 教材 以前 以下に単語を収録したファイルがあることを紹介した : /usr/share/dict/words この中からランダムに単語を取り出したファイルを用意した http://sun.ac.jp/prof/yamagu/2019app/
Microsoft Word - Cプログラミング演習(12)
第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char
Microsoft PowerPoint - pr_12_template-bs.pptx
12 回パターン検出と画像特徴 テンプレートマッチング 領域分割 画像特徴 テンプレート マッチング 1 テンプレートマッチング ( 図形 画像などの ) 型照合 Template Matching テンプレートと呼ばれる小さな一部の画像領域と同じパターンが画像全体の中に存在するかどうかを調べる方法 画像内にある対象物体の位置検出 物体数のカウント 物体移動の検出などに使われる テンプレートマッチングの計算
(MIRU2008) HOG Histograms of Oriented Gradients (HOG)
(MIRU2008) 2008 7 HOG - - E-mail: [email protected], {takigu,ariki}@kobe-u.ac.jp Histograms of Oriented Gradients (HOG) HOG Shape Contexts HOG 5.5 Histograms of Oriented Gradients D Human
Taro-ファイル処理(公開版).jtd
ファイル処理 0. 目次 1. はじめに 2. ファイル内容の表示 3. ファイル内容の複写 3. 1 文字単位 3. 2 行単位 4. 書式付き入出力 5. 文字配列への入出力 6. 課題 6. 1 課題 1 ( ファイル圧縮 復元 ) - 1 - 1. はじめに ファイル処理プログラムの形は次のようになる #include main() { FILE *fp1,*fp2; ファイルポインタの宣言
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
簡単ラベル作成 印刷マニュアル
プリンタードライバーの設定 お気にいりファイルの設定方法 動画マニュアルの案内 印刷したい用紙に合わせてプリンタードライバーを設定します プリンタードライバーの設定は プリンターに付属の取扱説明書でご確認いただけます また 簡単ラベル作成のトップページにある動画マニュアル プリンタードライバーの設定 では 実際の動作を確認しながら設定することができます 2 [ 画像取り込み ] ボタンをクリックし
コンピュータグラフィックスS 演習資料
コンピュータグラフィックス S 演習資料 第 4 回シェーディング マッピング 九州工業大学情報工学部システム創成情報工学科講義担当 : 尾下真樹 1. 演習準備 今回の演習も 前回までの演習で作成したプログラムに続けて変更を行う まずは シェーディングの演習のため 描画処理で 回転する一つの四角すいを描画するように変更する 画面をクリア ( ピクセルデータと Z バッファの両方をクリア ) glclear(
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (
スライド 1
グラフィックスの世界第 3 回 サイバーメディアセンター サイバーコミュニティ研究部門安福健祐 Processing によるアニメーション setup と draw void setup() size(400, 400); void draw() ellipse( mousex,mousey,100,100); void とか setup とか draw とかはじめて見る が出てきてややこしい ellipseは円描く関数でした
プログラミング基礎
C プログラミング Ⅱ 演習 2-1(a) BMI による判定 文字列, 身長 height(double 型 ), 体重 weight (double 型 ) をメンバとする構造体 Data を定義し, それぞれのメンバの値をキーボードから入力した後, BMI を計算するプログラムを作成しなさい BMI の計算は関数化すること ( ) [ ] [ ] [ ] BMI = 体重 kg 身長 m 身長
02: 変数と標準入出力
C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
1 Kinect for Windows M = [X Y Z] T M = [X Y Z ] T f (u,v) w 3.2 [11] [7] u = f X +u Z 0 δ u (X,Y,Z ) (5) v = f Y Z +v 0 δ v (X,Y,Z ) (6) w = Z +
3 3D 1,a) 1 1 Kinect (X, Y) 3D 3D 1. 2010 Microsoft Kinect for Windows SDK( (Kinect) SDK ) 3D [1], [2] [3] [4] [5] [10] 30fps [10] 3 Kinect 3 Kinect Kinect for Windows SDK 3 Microsoft 3 Kinect for Windows
プログラミングI第10回
プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造
プログラミング実習I
プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,
02: 変数と標準入出力
C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
OpenCV Windows(cygwin) Linux USB PC [1] Inel OpenCV OpenCV 1 Windows Linux OpenCV (a) (b)2 (c) (d) 1: OpenCV 1
OpenCV Windows(cygwin) Linux 20 2 8 1 USB PC [1] Inel OpenCV OpenCV 1 Windows Linux OpenCV (a) (b)2 (c) (d) 1: OpenCV 1 2 PC PC 1: PC PC PC dynabook SS OS Windows XP Professional Version.2002 ServicePack2
PowerPoint プレゼンテーション
プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体
Microsoft PowerPoint ppt
基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte
PowerPoint Presentation
プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include
2 2 Gtk+ GUI (widget ) GUI Gtk+ GUI Gtk+ GUI 2.2 Gtk GUI sample1.c Web (http://www.cyber.t.u-tokyo.ac.jp/ tani/class/mech enshu/) enshu2009gui1.tar.gz
1 2009 B4 GUI TA http://www.cyber.t.u-tokyo.ac.jp/ tani/class/mech enshu/ 2008 6 11 1 1 1 4 C GUI(Graphical User Interface) X Window System GUI 5 GUI 2 Gtk+ GUI 2.1 GUI GUI GUI (event driven) GUI GUI GUI
PowerPoint プレゼンテーション
2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd
21 e-learning Development of Real-time Learner Detection System for e-learning
21 e-learning Development of Real-time Learner Detection System for e-learning 1100349 2010 3 1 e-learning WBT (Web Based training) e-learning LMS (Learning Management System) LMS WBT e-learning e-learning
第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010
RW View Studio Getting Started (1) : 簡単な GUI アプリケーションを作成する 目次 第 1 章はじめに...1 1.1 アプリケーションの概要... 1 1.2 Views Studio とは... 2 第 2 章 Views Studio を起動する...3 2.1 起動画面 ( メインウィンドウ ) の説明... 4 2.2 ガジェットエクステンション...
昨年度までの研究紹介 および 研究計画
第 12 回 ICN 研究会ワークショップ Cefore で キャッシュプラグイン開発 2018 年 8 月 30 日 ( 木 ) キャッシュプラグイン csmgrd は起動時に使用するキャッシュプラグインを指定 Cache plugin: キャッシュデータ保存方式 Cache algorithm: キャッシュ選択 / 置換アルゴリズム Cache Plugin Cache algorithm csmgrd
GID Haar-like Mean-Shift Multi-Viewpoint Human Tracking Based on Face Detection Using Haar-like Features and Mean-Shift Yu Ito (Shizuoka Univers
GID-08-6 Haar-like Mean-Shift Multi-Viewpoint Human Tracking Based on Face Detection Using Haar-like Features and Mean-Shift Yu Ito (Shizuoka University), Atsushi Yamashita, Toru Kaneko (Shizuoka University)
1 Web [2] Web [3] [4] [5], [6] [7] [8] S.W. [9] 3. MeetingShelf Web MeetingShelf MeetingShelf (1) (2) (3) (4) (5) Web MeetingShelf
1,a) 2,b) 4,c) 3,d) 4,e) Web A Review Supporting System for Whiteboard Logging Movies Based on Notes Timeline Taniguchi Yoshihide 1,a) Horiguchi Satoshi 2,b) Inoue Akifumi 4,c) Igaki Hiroshi 3,d) Hoshi
やさしくPDFへ文字入力 v.2.0
操作マニュアル やさしく PDF へ文字入力 v.2.0 基本操作 目次 1. はじめに 2. やさしく PDF へ文字入力の起動 3. スキャナの設定 4. 原稿の取り込み 4-1. スキャナから 4-2. ファイルから 5. プリンタの設定 6. フィールドの作成 6-1. フィールドの自動作成 6-2. フィールドの手動作成 7. フィールドの設定 8. 文字の入力 9. 印刷 便利な使い方付録
PowerPoint プレゼンテーション
講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる
SICE東北支部研究集会資料(2013年)
280 (2013.5.29) 280-4 SURF A Study of SURF Algorithm using Edge Image and Color Information Yoshihiro Sasaki, Syunichi Konno, Yoshitaka Tsunekawa * *Iwate University : SURF (Speeded Up Robust Features)
PowerPoint プレゼンテーション
プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ
Microsoft PowerPoint - kougi2.ppt
C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し
258 5) GPS 1 GPS 6) GPS DP 7) 8) 10) GPS GPS 2 3 4 5 2. 2.1 3 1) GPS Global Positioning System
Vol. 52 No. 1 257 268 (Jan. 2011) 1 2, 1 1 measurement. In this paper, a dynamic road map making system is proposed. The proposition system uses probe-cars which has an in-vehicle camera and a GPS receiver.
0_テキストマイニング環境構築_mac
本実験で利 するソフトウェア Anaconda 5.0.0 Python 本体及び数値計算ライブラリや開発環境 をセットにしたパッケージ MeCab IPA 辞書 NAIST Japanese Dictionary mecab-ipadic-neologd Natto-py 日本語形態素解析器 Mecab 用辞書 Mecab 用辞書 Mecab 用辞書 Python から MeCab を利用するためのライブラ
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
2011 Future University Hakodate 2011 System Information Science Practice Group Report Project Name Applied Embedded System Group Name Radio-controlled model helicopter Group /Project No. 15-B /Project
Microsoft PowerPoint - prog04.ppt
プログラミング言語 2 第 04 回 (2007 年 05 月 14 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 05 月 14 日分と書いてある部分が 本日の教材です 本日の内容
IPSJ SIG Technical Report Vol.2015-MUS-107 No /5/23 HARK-Binaural Raspberry Pi 2 1,a) ( ) HARK 2 HARK-Binaural A/D Raspberry Pi 2 1.
HARK-Binaural Raspberry Pi 2 1,a) 1 1 1 2 3 () HARK 2 HARK-Binaural A/D Raspberry Pi 2 1. [1,2] [2 5] () HARK (Honda Research Institute Japan audition for robots with Kyoto University) *1 GUI ( 1) Python
Microsoft Word - Cプログラミング演習(10)
第 10 回 (6/25) 3. ファイルとその応用 (3) ファイルの更新 シーケンシャルファイルの更新 シーケンシャルファイルでは, 各レコードが可変長で連続して格納されており, その中の特定のレコードを変更することができない そこで一般的には, マスタファイルからデータを取り出し, 更新処理を行ったあとに新マスタファイルに書き込む 注 ) マスタファイル : 主ファイル, 基本ファイルと呼ばれるファイルで内容は比較的固定的であり,
ZoomBrowser EX Ver5.7 使用説明書(Windows)
Canon Utilities ZoomBrowser EX 5.7 RAW Image Task. PhotoStitch. EOS-D Mark II N EOS-Ds Mark II EOS-D Mark II EOS-Ds EOS-D EOS 5D EOS 0D EOS 0D EOS 0D EOS Kiss Digital X EOS Kiss Digital N EOS Kiss Digital
2 4 2 3 4 3 [12] 2 3 4 5 1 1 [5, 6, 7] [5, 6] [7] 1 [8] 1 1 [9] 1 [10, 11] [10] [11] 1 [13, 14] [13] [14] [13, 14] [10, 11, 13, 14] 1 [12]
Walking Person Recognition by Matching Video Fragments Masashi Nishiyama, Mayumi Yuasa, Tomokazu Wakasugi, Tomoyuki Shibata, Osamu Yamaguchi ( ), Corporate Research and Development Center, TOSHIBA Corporation
Maple 12 Windows版シングルユーザ/ネットワークライセンス
Maple インストール アンインストール手順書スタンドアロン版 更新日 2017/09/27 はじめに この手順書は Windows 32bit Windows 64bit Mac OS Linux に対応しております 詳しい動作環境については こちらをご参照ください http://www.cybernet.co.jp/maple/product/system/maple.html この手順書の説明画面は
2 ColorSpace DepthSpace CameraSpace Kinect V2 Kinect V2 BOdyIndex 3. NtKinect Kinect V2 C++ NtKinect [4] NtKinect = Kinect SDK + + STL(C++) + OpenCV +
NtKinect: C++ Class Library for Kinect V2 1,a) Kinect for Windows V2 C++ NtKinect NtKinect DLL Kinect V2 Kinect V2, C++, DLL, Unity NtKinect: C++ Class Library for Kinect V2 Nitta Yoshihisa 1,a) Abstract:
