マスク画像の作成
今回は,得られた座標を直線で結ぶという作業をOpenCVを用いて行ってみようと思います.
ただ,座標を直線で結んで多角形を作成するのも良いですが,今回は,作成後,いろいろと遊ぶことのできるマスク画像を作成します.
ここでは,マスク画像の詳細は省きますが,マスク画像は二値画像です.
10行目から13行目が得られた座標です.この座標を直線で結び,その内部を白く塗りつぶしています.
そしてtest.jpgは以下のようになります.
10行目から13行目の部分をtxtファイルから読み込みたいというときは,
FILE *fp; cv::Point pt[4]; int i;
などど宣言してから
fp = fopen("test.txt", "r"); if(fp == NULL){ printf("ファイルがありません\n"); return -1; } for(i = 0; i < 4; i++){ int x, y; fscanf(fp, " %d %d", &x, &y); pt[i] = cv::Point(x, y); } fclose(fp);
と書き換えます.
この書き換えの場合は
100 100 100 200 …
と座標を空白で区切ってある場合に使うことができます.
/* ポケモンORAS発売 */
ついに発売されました.(2014/11/21 記入)
ただ,今は少しプレイする余裕はなさそうです.(2014/11/28 記入)
(2014/12/26 記入)
最近,ようやく始められました.
まだジムバッジは2個ですが,ゆっくり自分のペースで進められたらと思います.
とりあえずの目標はジムバッジをすべて集めることですかね.
いろいろ見ているとポケモン以外にも欲しいゲームがたくさんありました.
でも,先月はゲームもできないほど追われていました.
もう少し,自分の人生について考えていきたいと思います.
/* coffee break */
最近,面白いブログを探すのが好きです.
さて,私は画像認識に関する研究をしているらしいのですが,先日研究されている方とお話ししました.
人と関わるのが億劫になっていて,私自身一人で何事も進めていきたいと思うことも多かったです.しかし,やはり横のつながりも非常に大事で,人と関わらずにやっていくことはおそらくできないだろうなと感じました.
OpenCVとこれから
先日,自分のコードを見てもらったら衝撃の一言.
「今はこんな書き方しないよ」
OpenCVの古いバージョンの書き方をしているようで…
cvLoadImageとかcvSaveImageとか…
Physics-Station: OpenCV を Visual Studio で使う方法
ここに書いてあるように「OpenCV 1.0で使われていたコードであり、初心者とメモリに優しくない」のです.
でも,やり始めたときに人に聞いてよかったなと.今までほぼ一人で調べてやってきたので.
今後はまた勉強しなおしてやっていきたいですね.
(あと,普段あまり更新していないのでもう少し日記みたいなものを増やすかも)
Rでファイルの読み書き
今回は最近よく使っているRのことを書きます.なかなか覚えられないので,ここにメモしておきます.
x <-read.csv("input.csv", header=F) m <-matrix(x, ncol=2) m1 <- m[-c(5,16,27,38,49,60,71),] write.table(m1, "output.txt", quote=F, col.names=F, row.names=F, append=F)
これ以降はデータがどうなっていくかが書いてあるだけです(長いです).
続きを読む輪郭座標をcsvファイルで保存
今回もOpenCV使ってみました.
opencv.jp - OpenCV: 木(Trees)サンプルコード -
こちらのサイトは輪郭座標をYAML形式で保存するのですが,まだ私にはなじみがなかったので,自分にとって扱いやすいcsvファイルで保存しようと思いました.
OpenCVの設定はこちらです.
今回は保存するところだけでなく,画像を読み込むところも変えています.
この方法ですと,いくつ輪郭があるかは分からなくなるのですが,一つの輪郭しか持たない場合は扱いやすくなると思います.
マウスイベントでお絵かき
OpenCVを使って遊んでみました.
こちらを参考に作成しました.
opencv.jp - OpenCV: シンプルGUI(Simple GUI)サンプルコード -
マウスでなぞるとなぞった線が保存されます.
入力画像 (original.jpg, 引用元: http://www.ashinari.com/)
マウスでなぞる!
出力画像 (newImage.jpg)
OpenCVの設定等はこちらです.
線をなぞることで複雑な背景などでもフリーハンドではありますが,輪郭を抽出することができます.
今回はなぞった線を黄色,出力画像については黒い背景に白い線にしましたが,入力画像の種類や,出力画像に応じていろいろ変更してもよさそうです.あとは画像の大きさを変えるとか…
今まであまりプログラミングとかしたことなかったので,いろいろ書き方として良くないところなどあると思うので,これから勉強していきたいです.
また遊んでみたいと思います.