OpenCV

ネット上の画像をIplImageに変換

前教えてもらったやり方を記事にまとめておく。 C++/CLIで.NET Frameworkを使って画像をいったんBitmapに変換し、それから中身をIplImageに格納する。 IplImage* GetIplImage() { IplImage *img = 0; String^ url = URL; HttpWebRequest^ request; HttpWebRe…

OpenCV 2.0

OpenCV 2.0がリリースされましたね。 早速インストールしてVisual Studioで使えるようにしてみました。 http://www.atinfinity.info/wiki/index.php?OpenCV/SVN%E7%89%88%20OpenCV%E3%83%93%E3%83%AB%E3%83%89 上の記事を参考にCMakeして、後は普通にVisual …

BMPをネットからIplImageに読み込み

インターネット上のBMPファイルをIplImageに読み込んで表示させてみたい。 #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") #include <cv.h> #include <highgui.h> #include <iostream> #using <System.dll> using namespace std; using names</system.dll></iostream></highgui.h></cv.h>…

ピクセルにアクセス

画素値を直接いじろうとしてつまった。 CvScalarフィールドにアクセスするインターフェースが見つからない\(^o^)/ 調べてみたら、IPLをPILに変換して画素値をあれこれする方法があるらしい。 ということで試してみた。IPL→PIL→画素値をいじる→IPLって処理…

ctypes-opencvを使ってみる

http://code.google.com/p/ctypes-opencv/ Python用OpenCVのラッパーctypes-opencvを使ってみる。 なんでもOpenCVに付属しているswigベースのラッパーは メモリ管理に矛盾がある それゆえ大きいプロジェクトに適していない メンテと開発が難しい らしいです…

cvBlobを使ってみる

http://code.google.com/p/cvblob/ 二値画像のラベリングや重心などの特徴抽出が行えるOpenCV用のライブラリcvBlobを使ってみる。 ダウンロードして、ファイル(cvblob.h, cvblob.cpp and cvlabel.cpp)を自分のプロジェクトに加えるだけで使える。とりあえず…

マウスイベントで線を引く

マウス操作で読み込んだ画像に線を引いてみる。 cvLineを使って線を引く。レフトボタンが押された座標を保持、押されなかったらクリア、マウスが動いてる最中は常に押している座標と押された座標を更新し続ければ線が引ける。・ソースコード #include <cv.h> #incl</cv.h>…

テンプレートマッチングの比較

cvMatchTemplateを使ってテンプレートマッチングを行ってみる。 マッチングに利用できる相関関数 CV_TM_SQDIFF (最小値の座標がマッチング位置) CV_TM_SQDIFF_NORMED CV_TM_CCORR (最大値の座標がマッチング位置) CV_TM_CCORR_NORMED CV_TM_CCOEFF (最大値の…

ヒストグラムの比較

OpenCVを使ってヒストグラムの比較を行ってみる。 どうやるかというと、二つの画像のヒストグラムを計算してから、cvCompareHistを用いてそれらを比較すればいい。 今回は以下の二つの画像を使ってみた。自分の手の画像です。 myhand1.jpg myhand2.jpg cvCom…

OpenCVで魚眼レンズ

Imager で魚眼っぽいフィルタつくったを参考にOpenCVで魚眼レンズフィルターを作ってみました。 #include <stdio.h> #include <cv.h> #include <highgui.h> #include <math.h> void Anglar_Fisheye(char *file_name) { IplImage *img = 0; IplImage *out_img = 0; double r; //魚眼レンズの半径</math.h></highgui.h></cv.h></stdio.h>…

画像にモザイクをかける

画像にモザイクをかけてみます。 基本的にモザイクの大きさは10×10で、その中のRGB値の平均をモザイクの範囲の各画素値に代入します。 #include <cv.h> #include <stdio.h> #include <highgui.h> int main (int argc, char **argv) { IplImage *img; IplImage *output_img; char *file_</highgui.h></stdio.h></cv.h>…

エッジ検出

OpenCVを用いてエッジ検出を行ってみます。 エッジ検出を行うアルゴリズムは色々ありますが、今回はCannyアルゴリズムを使ってみました。 /* threshold1 と threshold2 のうち小さいほうがエッジ同士を接続するために用いられ, 大きいほうが強いエッジの初…

ピクセルデータに直接アクセス

OpenCVを使ってみます。OpenCVはインテルが公開しているライブラリのことです。とりあえずopencv.jpのサンプルコードを参考にしてコードを書いてみました。 #include <cv.h> #include <highgui.h> int main (int argc, char **argv) { int x, y; unsigned char p[3]; IplImage</highgui.h></cv.h>…