javax.media.openglを使いたい

javaopenglを使ったプログラムをコンパイルしたところ、
javax.media.openglが見つからない、というエラーがありました。

※ちなみに、openGLの導入はこちらのサイトを参考にしました。
JOGL,JOCLのEclipse環境を整える - プログラムdeタマゴ

調べてみたら、こちらのサイト(java - Where can I find the package javax.media.opengl? - Stack Overflow)に
JOGLはversion2.3.1以降、パッケージ名を変えていて、
javax,media.openglではなくて、com.jogmap.openglになった

と書かれていました。

試しにすべてのjavax.media.openglをcom.jogmap.openglに変えたらコンパイル通りました。
f:id:acochan:20150808164041p:plain

cv::matchTemplateの計算方法について

opencvのテンプレートマッチング [matchTemplate] を使っていて、

そういえば手法について詳しく知らないなと思ったので調べてみました。

手法には、以下の6つがあります。

  • CV_TM_SQDIFF
  • CV_TM_SQDIFF_NORMED
  • CV_TM_CCORR
  • CV_TM_CCORR_NORMED
  • CV_TM_CCOEFF
  • CV_TM_CCOEFF_NORMED

計算式は、opencvリファレンスに掲載されています。

計算式の意味は、こちらを参考にすればわかるかと思います。

 

CV_TM_SQDIFFは、輝度値の差の2乗の合計を求めます。

なので、値が小さいほど類似しているということになります。

CV_TM_CCORRは、輝度値の相関を求めています。

なので、値が大きいほど類似しているということになります。

CV_TM_CCOEFFは、輝度値の平均を引いてから相関を求めています。

これにより、テンプレート画像と探索画像の明るさに左右されにくくなります。

相関を求めているので、こちらも値が大きいほど類似しているということになります。

 

Xcode5.0.2でopencvが動かない

先日ノートパソコンを新しくしたので、

xcode5.0.2をインストールし、opencv2.4.7を導入しました。

以前のPCで使用していたxcodeファイルをそのまま実行してみたところ、

以下のようなエラーが…。

 

Undefined symbols for architecture x86_64:

  "cv::namedWindow(std::string const&, int)", referenced from:

      _main in main.o

  "cv::imshow(std::string const&, cv::_InputArray const&)", referenced from:

      _main in main.o

ld: symbol(s) not found for architecture x86_64

 

clang: error: linker command failed with exit code 1 (use -v to see invocation)

 

以前のPCでは libstdc++で動いていたのですが、

その部分をlibc++に変更したところ、コンパイルできました。

f:id:acochan:20131218123035p:plain

 

Windows7でログインできない

以前からちょっと調子の悪かったwindows7がついにログインできなくなりました。

パスワードを入力してエンターを押すと

"user profile service サービスによるログオンの処理に失敗しました"というメッセージが出て、ログオフし始めます。

 

ネット調べたらいくつか方法が載っていました。

一番簡単そうなのが、アカウントを新しく作ってこれまでのデータを以降する方法。

管理者アカウントが他になければ、セーフモード でログインして、新しいアカウントを作ります。

windows起動時に(windowsのロゴが表示される前に) F8キーを連打すると、

黒画面に白文字で「セーフモードとコマンドプロンプト」という選択肢があるので、ハイライトを当ててエンター。

管理者アカウントでログインします。

コマンド画面が表示されたら、

net user <作成するユーザ名> /add

net localgroup Administrators <作成したユーザ名> /add

と入力し、「正常に作動しました」というコメントが表示されたら再起動をします。

すると、新しい管理者アカウントができているので、そちらでログインをします。

あとは、こちらの通りにユーザプロファイルの修復を行います。

http://windows.microsoft.com/ja-jp/windows/fix-corrupted-user-profile#1TC=windows-7

 

 

四捨五入

C言語で四捨五入をする関数を作りました。

 

【関数名】 round( )

【概要】double型を指定された精度で丸めた値を返す

【引数】

1. double -丸めたい値

2. int -精度

【戻り値】

double -丸めた値

 

 

今日はAtCoderのBeginner Contestの過去問を解いてみました。

AtCoder初めてでしたが、システムは分かりやすかったです。

次はリアルタイムで参加してみたいです〜