「OpenCV」カテゴリーの記事一覧

2018-03-27

謎の目眩、動悸、頭痛

朝から慣れない画像処理のプログラミングに集中していた。オリジナル処理アルゴリズムなのでOpenCVは入出力にしか使えない。OpenCVのmat形式は画素アクセスが非効率的で困ってしまう。17時頃、頭がぼうっとしてきた。目眩がする。動悸が激しくなった。頭痛がする。起きていられなくなくて、ソファーに倒れ込んだ。まったく動けない。目眩はするが頭が働かない訳ではない。同僚に救急車を呼んでもらおうかと思ったが、病院から出てきたら、荷物を取りに会社に戻らなければならないのが結構面倒だ。命にかかわる状況ではなさそうだと勝手に判断してソファーに倒れ込んだまま1時間半安静にしていた。眠れはしなかった。1時間半後、立てるようになった。しかしフラフラだ。有効かどうかわからないが、会社にある栄養になりそうなもの、野菜ジュース、カロリーメイト、アーモンドを胃に詰め込んだ。30分くらいしたらなんとか歩けるようになった。そのまま退社した。一体何だったんだ。ネットで調べると、目眩と吐き気は自律神経失調症らしい。ストレスが原因だ。慣れないプログラミングがストレスになったのだろう。仕様を書いて専門のプログラマに仕事を任せたほうが良かったか。でも仕様を書く時間があったらプログラムが完成しそうなので、なかなかそういうふうにしようと思わないんだよ。

しかし,ほぼ健康体だと思っていたのに突然あんなことになったということは,身体に何か問題があるのかもしれない.病院に行って検査してもらった.血液を採って検査だ.結果が出るのは一週間後.

続きを読む
2017-02-09

OpenCV1.0と2.4でresizeの挙動が違う

今日はプログラムのデバッグで1日潰れた.複数人で画像処理をしているのだが,一人を除いてうまく行かない.そんなに複雑なことをしてないのにだ.いろいろ調べているうちにうまく行っている一人だけがOpenCV1.0を使っていることが分かった.残りの人はOpenCV2.4.9だ.未だにOpenCV1.0を使っているということ自体に驚いたが,うまく動くかどうかはOpenCVのバージョンの差だということが分かった.そして,それぞれのバージョンの使っている関数の挙動をひとつひとつ比較するという地味な作業の末,原因が分かった.画像のサイズを変える関数resize(OpenCV1.0ではcvResize)が違うのだ.OpenCV2.4.9でresizeして画像を縮小すると高周波成分がよく残り,尖鋭な画像になる.対してOpenCV1.0だと高周波成分が消えてぼけたような画像になる.両方とも補間の指定はINTER_AREAだ.我々の行っていた画像処理では高周波成分が消えてくれた方が好ましかったので,OpenCV1.0の場合だけうまく動いていたのだった.それにしても,resizeなんて良く使う関数の挙動がバージョン違いでここまで違うとは驚いた.我々以外にもこれまで困った人がいたのではないかな.

続きを読む
2016-11-10

OpenCVでアサーションエラー

先週まで正常にビルドできて動いていたOpenCVのアプリが突然動かなくなった.こんな感じのエラーがでる.

OpenCV Error: Assertion failed (i >= 0) in hoge, file fuga.cpp, line 8

正常に動いていたときに比べて,ソースコードは1行たりとも変えていない.なぜエラーが出るのか.Windows OSのせいじゃないのか.

途方に暮れて,プログラムを全部作り直すことにした.新しいプロジェクトを作って,新しい.cppファイルを作って,動いていたときと同じcppのコードを記述した.そしてビルドすると,果たして今度は正常にビルドできて動いた.???

何が起こっていたのだろう?メモリーのビットエラー?宇宙線の影響?HDDの読み出しエラー?全く分からない.コンピューターって結構いい加減だということが分かった.

続きを読む
2016-10-26

OpenCVの64bitアプリを作る

2時間くらいはまってしまった.

  1. ビルドの構成マネージャーでプラットフォームにx64を選択
  2. プロジェクトのプロパティでリンカーの追加ライブラリのディレクトリにx64\libを指定

これだけで動くと思って動かしたら,エラーで動かない.どうもx86のライブラリを読んでいるようなのだ.さんざん悩んでネットをさまよったら,答が見つかった.システムプロパティのパスにC:\opencv\build\x86\vc12\binを指定していたのが原因だった.ここをC:\opencv\build\x64\vc12\binに変えたら64bitアプリが動いた.

続きを読む