2009-01-01から1年間の記事一覧

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>…

コードの見方

TopCoderで他人様のコードを見る方法がわからなくて少し悩んだ。 Statics → Match Result → 見たいのを選ぶ → 見たい人を選ぶ → 下のほうにあるProblemを選ぶ こんな感じか。

解いてみる

SRM 440 DIV2 250 #include <cmath> #include <vector> using namespace std; class IncredibleMachineEasy { public: double gravitationalAcceleration(vector <int> height, int T); }; double IncredibleMachineEasy::gravitationalAcceleration(vector <int> height, int T) { do</int></int></vector></cmath>…

ネットワークカメラ

ネットワークカメラから画像を受信してIplImageにぶち込みたいなーと思い色々と調べてみた。 .NETクラスを使って組んでみるとネットワーク関係がすっきり記述できそうな予感。画像をストリームに入れてから、Stream.ReadByteメソッドで読み込んでいけばいい…

定時退社

http://sdc.sun.co.jp/java/event/lecture/JMAR001-05.pdf たまにJavaで定時退社だーってネタを見るんですけど、これが元ネタなのかな? Javaはほとんど知らないんですけど、研修でJavaやるみたいだし勉強したほうがいいかな。

パズル

プログラマのための論理パズルに載っている問題を解いてみる。 0.5%の確率で被害にあう装置を使うとき、最初の50人の中に少なくとも1人が被害にあう可能性を求める。 import random def puzzle18(percent): if random.randint(0, 1000) < percent: return 1 …

Pythonを5倍速くするらしいよ

http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars Google's Python engineers have launched a new project called Unladen Swallow that seeks to improve the performance of the Python …

ISBN13をISBN10に変換

ISBNコード(とASIN)のまとめ http://www.marusankakusikaku.jp/archives/2007/01/06-isbn-asin.html これを参考にしてISBN13をISBN10に変換してみる。 ・13桁のコードから上3桁とチェックデジット1桁を無視する ・ISBN10の計算方法でチェックデジットを計算…

JANコードで商品検索

http://developer.yahoo.co.jp/webapi/shopping/shopping/v1/itemsearch.html Yahoo!ショッピングのAPIを利用してJANコードを用いて商品の情報(今回は書名とURL)を手に入れてみる。 市販のバーコードリーダーを使ってそこいらにあった本のJANコードを読み込…

ピクセルにアクセス

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

購入

・プログラマのための論理パズル ・5手詰ハンドブック プログラマのための論理パズルがかなり難しい。 自分の頭の悪さが浮き彫りにされる感じです。

ctypes-opencvを使ってみる

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

Boostは便利

最近になってBoostを知ったので、いろいろと勉強してます。 特にformatが便利ですね。・ソース #include <iostream> #include <boost/format.hpp> using namespace std; using namespace boost; int main(void) { cout << format("%1%") % "boostって便利だなー" << endl; cout << format</boost/format.hpp></iostream>…

なんとなく

いやー就職活動で忙しかったのでまったく更新できませんでした。 最近になって一段落したので更新を再開しするつもりです。よろしくお願いします。ま、このブログなんか誰も見てねー可能性もありますが。

cvBlobを使ってみる

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

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

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

Hello, World

C++

C++勉強しなくちゃなーと思い立ち、とりあえず参考書として"C++実践プログラミング"を入手。勉強するぞー。 というわけでまずはHello,World。 #include <iostream> int main(void) { std::cout << "Hello, World\n"; return (0); }</iostream>

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

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…

Python3.0を入れてみた

軽く文法を知ってるだけだけどPython3.0をインストールして使ってみた。http://wiki.python.org/moin/Python3.02.xとはいろいろ違ってる模様。とりあえず簡単にキー入力を受け付けて、文字列の大きさを出力するコードを書いてみた。 #!/usr/bin/env python i…

16進数を10進数に変換

16進数がコンマで区切られているファイルを読み込んで、各16進数を10進数に変換して出力する。ファイルデータ 0D,27,72 19,33,63 13,1D,6C 3D,21,42 23,1D,EC 31,39,4E 2F,05,50 3B,11,44 37,09,48 0B,17,74ソース file = open("HEX.TXT") file.each{|e| arr…

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>…

Cでchomp

C

Cでchompを書いてみます。 chompとはPerlの関数で、文字列の中の改行('\n')を削除します。 #include <stdio.h> #include <string.h> static char* chomp( char* str ) { int l = strlen( str ); if( l > 0 && str[l-1] == '\n' ) { str[l-1] = '\0'; } return str; } int main(v</string.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>…

天気予報

お天気Webサービス(http://weather.livedoor.com/weather_hacks/webservice.html)を使用してみます。 cityとdayの二つのパラーメータを渡すとXMLデータが返されるので、それをパースすればOKです。パーサーとしてHpricotを使用してみました。 #! ruby -Ks re…