サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
chihara.naist.jp
#include <stdio.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" // グローバル変数群 IplImage *img=0, *bin=0, *dil=0, *ers=0; int main( int argc, char** argv ){ int dilations = 2; //膨張回数 int erosions = 2; //収縮回数 // 画像ファイル読み込み char* filename = argc == 2 ? argv[1] : (char*)"morphology.bmp"; if( (img = cvLoadImage( filename, 1)) == 0 ) return -1; // グレースケール画像データ用 bin = cvCreateImage( cvSize(img->w
概要 † カメラから得られる画像がカラー画像である場合,そのカラー情報を用いることで領域を抽出することができます.今回のサンプルでは,RGB表色系においてあらかじめ閾値を設定しておき,領域抽出を行います(一般的にHSVやL*a*b*などの他の表色系に変換した後に適用されます). ↑ #include <stdio.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" #include "mask.h" // グローバル変数群 IplImage *img=0, *mask=0, *dst=0; int main( int argc, char** argv ){ // 画像ファイル読み込み char* filename = argc == 2 ? argv[1] : (char*)"fish.bmp"; if( (img =
色空間の分離と結合 † 画像処理では,RGB成分などを持つマルチチャンネル画像から 特定のチャンネル成分のみに注目して処理を行うことがあります. ここでは,色空間の分離を行う関数cvSplitおよび, 色空間の結合を行う関数cvMergeを使ったサンプルを紹介します. ↑ //--------------------------------------------------------------- // 概要 : 色空間の分離および色空間の結合 // File Name : Split_and_Merge.cpp // Library : OpenCV for MS-Windows 1.0 // Auther : Yasuhiro Yoshimura // Date : Dec 06, 2006; 05:54 //------------------------------------
はじめに † OpenCV(Intel Open Source Computer Vision Library)とは,Intelがオープンソースで公開しているコンピュータビジョン関連のライブラリです.これから次の環境にインストールする方法を説明します.
レンズ歪み補正 † OpenCVにはレンズ歪み補正のための関数cvUndistort2が用意されています. ここでは,cvUndistort2を使ったレンズ歪み補正プログラムのサンプルを紹介します. ※今回,レンズ歪み係数およびカメラパラメータは,GML C++ Camera Calibration Toolboxによって求めたものを用いることにします. GML C++ Camera Calibration Toolboxの使い方は,GML C++ Camera Calibration Toolboxを参照のこと. ↑ #include <stdio.h> #include "cv.h" #include "cxcore.h" #include "highgui.h" // グローバル変数群 IplImage *src=0, *dst=0; CvMat *m_CameraMatrix
はじめに―GLUIを利用したGUI構築 † OpevCVには貧弱なGUIしか用意されていません(トラックバーのみ?). そこで,OpenGL用GUIであるGLUIを利用したGUIの構築法を紹介します. (参考) GLUI公式ページ: GLUIリファレンスマニュアル日本語版: ↑ GLUIのインストール † ダウンロード http://www.cs.unc.edu/~rademach/glui/src/release/glui_v2_1_beta.zip 解凍 \msvc\glui.dswを実行,Visual Studio .net形式に変換 \glui.hを書き換える (Visual C++ 7 以外は必要ないかも) #include <GL/glut.h> #include <stdlib.h> #include <stdio.h> #include <string.h> ↓ #incl
概要 † プログラムの動作を検証したい場合,再現性のある動画ファイルを用いることがあります. そこで,今回は,単純にaviファイルを読み込み,ウィンドウに表示する例を紹介します. 注:OpenCV for Windows beta 5にて動作確認 ↑ //--------------------------------------------------------- // 概要 : 動画(aviファイル)読み込み // File Name : LoadVideo.cpp // Library : OpenCV for MS-Windows beta5 // Auther : Yasuhiro Yoshimura // Date : Dec 26, 2005; 22:22 //--------------------------------------------------------
準備 † (OpenCVはC:\Program files\OpenCVに,PythonはC:\Python25にインストールされているとします.) C:\Program files\OpenCV\interfaces\swig\python\build\lib.win32-2.5\opencv を C:\Python25\Lib\site-packages にコピーする 以上で,C:\Program files\OpenCV\samples\pythonが動くはずです.確認しましょう. ↑ リファレンスマニュアル † (以下,pydocの説明です.) コマンドラインから C:\Python25\lib\pydoc.py -p 3838 を実行 http://localhost:3838/opencv.htmlにブラウザからアクセス FrontPage
インストール † まず,GML C++ Camera Calibration ToolboxからGML_CameraCalibrationInstall_040.exeをダウンロードし, インストールする.インストール先などの変更が無ければ,そのまま進めても問題無い. ※同上のサイトにソースも配布されているので,OpenCV(beta5)のカメラキャリブレーション関数の使い方 を学ぶ教材としても利用できるであろう. ↑ プロジェクトの作成 † C:\Program Files\GML\GML Camera Calibration Toolbox 0.4にあるGML Camera Calibration.exeを実行し, [File]-[New Project]よりプロジェクトを作成する(図1).
この文書は † Visual Studio 2008 Express Edition(英語版) で OpenCV が動作することを確認したので、 その報告。2007年12月7日の情報。 ↑ Visual Studio 2008 Express Edition † http://www.microsoft.com/express/download/ からDVDのISOイメージ (VS2008ExpressENUX1397868.iso)をダウンロードする。 ISOイメージをマウントするために、適当なバーチャルCD-ROMドライブツールを ダウンロード&インストールする。 例えば Alcohol 52% Free Edition http://trial.alcohol-soft.com/en/ など。 ISOイメージをマウントし、Visual C++ 2008 Express Edition
この文書は † 判別基準に基づいて閾値を局所的に決定することで、画像の二値化処理をより適応的に行う手順について示します。 ↑ おさらい † OpenCV で画像の二値化を行うには、一般的に cvThreshold を用います。cvThreshold では閾値をユーザが与える必要があります。 一方 cvAdaptiveThreshold? は、周辺画素の輝度値の平均を閾値として二値化を行います。閾値は自動的に決定されますが、輝度分布に偏りがある場合などには思うような結果を出さないことがあります。 ↑ 判別分析 † 判別分析(discriminant analysis)は、二つ以上のクラスを分類する基準を得るための教師あり学習手法で、統計学や機械学習で用いられています。 判別分析の考え方を画像の二値化に対して適用し、閾値を自動的に選定する手法が1979年に大津によって提案されています。 Ots
SharperCVとは? † SharperCVとは,C#言語上でOpenCVを扱えるようにするためのラッパライブラリです. OpenCVにおける主要な関数がラップされています (関数リファレンス). Windowsアプリケーション+CVというものを作りたい際には重宝するかもしれません*1. ↑ SharperCVの特徴 † SharperCVにおいて,ウインドウや画像などはすべてクラスとして取り扱われます. ゆえにOpenCVにおける関数は,クラス上のメソッドとして定義されます. たとえばウインドウを司るクラスは,プロパティとしてウインドウの幅と高さ,また画像へのポインタ,メソッドとして「ウインドウを閉じる」を持ちます.ユーザはウインドウを表示したいときにウインドウのインスタンスを宣言します. ↑ 確認した動作状況 † 筆者の環境を下に示します.下記の環境ならひとまず動く模様. IBM
目的 † ホモグラフィー行列を求めて画像を射影変換します。 配列 a[] に変換前の画像上座標、配列 b[] に配列 a[] のそれぞれの点に対応する変換後の画像上座標、 NUM_POINTS に点数を入れます。 ↑ // homography.cpp #include <cv.h> #include <highgui.h> #include <iostream> using namespace std; #define SRC_IMAGE "perspective_color.jpg" #define DST_IMAGE "result_color.jpg" const int DST_WIDTH = 512; const int DST_HEIGHT = 512; const int NUM_POINTS = 4; int main( int argc, char **argv ) {
概要 † 研究などで,キャプチャした画像に処理を加え,それをデモ用として動画ファイルとして保存したいということがあると思います.今回は,単純にカメラから得た画像をaviファイルとして出力する例を紹介します. 注:OpenCV for Windows beta 5にて動作確認 ↑ //--------------------------------------------------------- // 概要 : キャプチャ&動画(aviファイル)保存 // File Name : WriteVideo.cpp // Library : OpenCV for MS-Windows beta5 // Auther : Yasuhiro Yoshimura // Date : Nov 22, 2005; 19:08 //--------------------------------------
IPL † OpenCVはIPL(Intel Image Procesing Library)をベースにコーディングされています.OpenCVをインストールするだけでもコンピュータビジョンプログラミングは可能ですが,IPLをインストールすれば便利な関数が使えるようになります. ↑ IPLのインストール † IPLは既に公式公開が終了しています.現在では,ミラーサイトを探すしか入手方法はありません. http://www.cvmt.dk/~hn/Images/install/IPL/ に置いてあります.ipl25.exeをダウンロードしましょう.iplman.pdfはリファレンスマニュアルです. ダウンロードしたファイルを実行して,インストールします.
主成分分析と画像処理 † 主成分分析は多変量のデータ解析に用いられる手法の一つです。 画像処理では,適当な閾値処理等により得られた 直線領域から直線を抽出するのに用いられたりします。 下図は緑色の直線領域が閾値処理により得られたときに、 直線領域の表す直線の傾きを1次元の最小二乗法(左)と主成分分析(右) の二種類の方法を用いて、計算したものです。 主成分分析で得られた直線(右)は正しく直線領域の傾きを表しているのに対し, 1次元の最小二乗法で得られた直線は(左)は明らかに誤っています。 これは両者の誤差のとり方の違いに由来します。 1次元の最小二乗法では,x軸の値は必ず真値であり,y軸の値にのみ誤差が乗ると仮定されます。したがって,1次元の最小二乗法ではy軸方向の誤差が少なくなるように軸が算出されます。 それに対し,主成分分析ではx,y両軸方向に誤差が乗ると仮定され, x,y軸方向の誤差
OpenGL上で文字列を描画する方法 † OpenGL上で文字列を描画する方法を調べてみたところ,GLTT, FTGLというライブラリがあるらしい. 今のところ使う機会は無いのだけれど,備忘録ということで参考サイトをまとめておこうかなと. [GLTT] GLTT GLTTとは [FTGL] FTGL FTGL を使ってみた FTGL による文字表示 [その他] OpenGL@NomisoBraaan Wiki OpenGLで日本語表示 on Windows Drawing a String of Characters using OpenGL yuno-world 開発研究室 OpenGLテキスト表示
Google Earth の視点を外部プログラムから制御する (サンプルはこのページの一番下にあります) Google Earth には他のプログラムとのインタフェースとして COM API が準備されている。 ※COM とは Component Object Model の略称で、 部品化されたプログラムを作成・利用するための基盤となる 技術仕様である。 COM に従って記述されたコンポーネント間では、 言語と場所によらずデータのやりとりが行える。 Google Earth COM API に関する情報は http://earth.google.com/comapi/index.html から入手できる。 C++から使用できるようにする準備 まず、http://earth.google.com/comapi/index.html にある earth.idl をダウンロードする。 ※IDL
Link: 掲示板(32d) 適応的二値化処理(123d) Visual C++ 2008 Express Edition(302d) 射影変換(305d) RGBTRIPLE(366d) リンク(381d) GML C++ Camera Calibration Toolbox(558d) 高度なGUI(558d) 基本形(558d) 行列の出力(558d) Python(558d) カメラキャリブレーション(558d) PukiWiki/1.4/Manual/Plugin/L-N(558d) PukiWiki/1.4/Manual/Plugin/O-R(558d) ボールトラッキング(558d) SharperCV関数リファレンス(558d) 主成分分析(558d) カメラ利用の基本形(558d) マウス入力(558d) キャプチャ&動画ファイル出力(558d) 画像の2値化処理(558
Link: 掲示板(28d) 適応的二値化処理(119d) Visual C++ 2008 Express Edition(298d) 射影変換(301d) RGBTRIPLE(362d) リンク(377d) GML C++ Camera Calibration Toolbox(554d) 高度なGUI(554d) 基本形(554d) 行列の出力(554d) Python(554d) カメラキャリブレーション(554d) PukiWiki/1.4/Manual/Plugin/L-N(554d) PukiWiki/1.4/Manual/Plugin/O-R(554d) ボールトラッキング(554d) SharperCV関数リファレンス(554d) 主成分分析(554d) カメラ利用の基本形(554d) マウス入力(554d) キャプチャ&動画ファイル出力(554d) 画像の2値化処理(554
インストール CUDA 1.0 がリリースされた。 あいかわらず、Windows Vista はサポートされていないが。 早速インストールする。 http://developer.nvidia.com/object/cuda.html から Windows Display Driver version 162.01 for CUDA Toolkit version 1.0 CUDA Toolkit version 1.0 for Windows XP (32-bit) CUDA SDK version 1.0 for Windows XP (32-bit) をダウンロードして、この順序でインストールする。 Toolkitは C:\CUDA に、SDKは C:\Program Files\NVIDIA Corporation\NVIDIA CUDA SDK にインストールされる。 ドキュメン
Pythonで行列演算 情報源 http://www.nasuinfo.or.jp/FreeSpace/kenji/sf/fastTour/pyLinear.htm 必要なパッケージ Numeric-24.2.tar.gz - http://sourceforge.net/projects/numpy からダウンロード インストール % python setup.py build # python setup.py install 行列の初期化 import Numeric a = Numeric.array( [[1,2], [3,4]] ) a = Numeric.zeros( 3 ) ※可変サイズの場合は、リストとして保持しておき、初期化する 行列のサイズを返す Numeric.shape(a) 行列演算 四則演算は要素ごとの演算になる。 転置: Numeric.transpose
目標 OpenGLにはこれまで、プラットフォームに依存しないテクスチャへ直接レンダリングを行う手法は 存在していませんでしたが、framebuffer object が規定され、ウィンドウ以外への オフスクリーンレンダリングが可能になったことで、テクスチャへのレンダリングも プラットフォームに依存せず行えるようになりました。 ここでは framebuffer object の概要について記述します。 framebuffer object とは framebuffer object は、OpenGLでプラットフォームに依存せず オフスクリーンレンダリングを実現する機構です。 OpenGL 2.0 の正式仕様には取り込まれていません。 OpenGL拡張 EXT_framebuffer_object として規定されています。 従来のフレームバッファは、実際の表示ウィンドウと密接に関連付けられて
2値化画像 † 濃淡がなく,白と黒しかない図形・画像は,画素の値が0,1の2つの値しかとらないので,2値画像(binary image)と呼ばれる. ↑ 閾値処理 † 画像の特徴を解析する前処理として,画像から対象物を切り出し,図形と背景を分離するために2値化処理を用いることが多い.2値化は,閾値処理により行われる. ↑ //--------------------------------------------------------------------- //概要 :二値画像処理 //File Name :binarization.cpp //Library :OpenCV for MS-Windows 1.0 //Auther :Bingxin Niu //Data :Feb 07, 2007; 18:30 //----------------------------------
雛形 † #include <stdio.h> #include <cv.h> #include <highgui.h> int main(int argc, char** argv) { int key; CvCapture* capture = NULL; IplImage* captureImage = NULL; IplImage* outputImage = NULL; if(NULL==(capture = cvCaptureFromCAM(-1))) { printf("カメラが見つかりません"); return -1; } char* captureWindow = "Capture"; char* outputWindow = "Output"; cvNamedWindow(captureWindow, CV_WINDOW_AUTOSIZE); cvNamedWind
Link: 掲示板(27d) 適応的二値化処理(118d) Visual C++ 2008 Express Edition(297d) 射影変換(300d) RGBTRIPLE(361d) リンク(376d) GML C++ Camera Calibration Toolbox(553d) 高度なGUI(553d) 基本形(553d) 行列の出力(553d) Python(553d) カメラキャリブレーション(553d) PukiWiki/1.4/Manual/Plugin/L-N(553d) PukiWiki/1.4/Manual/Plugin/O-R(553d) ボールトラッキング(553d) SharperCV関数リファレンス(553d) 主成分分析(553d) カメラ利用の基本形(553d) マウス入力(553d) キャプチャ&動画ファイル出力(553d) 画像の2値化処理(553
次のページ
このページを最初にブックマークしてみませんか?
『chihara.naist.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く