OpenCV」タグの記事一覧

2017-07-11

OpenCVのflip関数の第3引数

cv::flip(src_img, dst_img, 0); // 水平軸で反転
cv::flip(src_img, dst_img, 1); // 垂直軸で反転
cv::flip(src_img, dst_img, -1); // 両方の軸で反転

続きを読む
Windows
2017-04-13

Visual StudioでOpenCVを使う

なんで内燃機関のエンジニアがVisual Studioを使わないといけないんだというぼやきは置いといて,これも宮仕えのならいなのだ.

ビルド->構成マネージャーで新規を選んでx64にする.

プロジェクト->プロパティで構成をすべての構成に変える.

C/C++下の全般を選び,追加のインクルードディレクトリにC:\opencv\build\includeを指定

リンカー下の全般を選び,追加のライブラリディレクトリにC:\opencv\build\x64\vc12\libを指定

あとはビルドすれば良し.

続きを読む
OpenCV
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なんて良く使う関数の挙動がバージョン違いでここまで違うとは驚いた.我々以外にもこれまで困った人がいたのではないかな.

続きを読む
OpenCV
2016-11-10

OpenCVでアサーションエラー

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

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

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

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

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

続きを読む