• 締切済み

OpenCvライブラリを用いて、C++を使い画像処理をしています。

OpenCvライブラリを用いて、C++を使い画像処理をしています。 私は今、人が映ったら保存するプログラムができています。 そこで、人が映るたび、ファイル名を自動的に変えてフォルダに保存していくプログラムが作れなくて困っています。 どのようにcvSaveImage関数を使えばよいのか教えてください。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

これは、OpenCVというよりは、重複しないファイル名の作り方、ということになると思います。 cvSaveImage自体には、重複チェックやファイル名の自動変更は無いです。 ・連番を付ける。 グローバル変数、(プロセスの最初から最後までメモリ上にあるようなクラスの)メンバ変数、static変数、設定ファイル、レジストリ等、以前の数値を記憶しておくしくみを用意して、保存するときは sprintf(filename, "%08d.png", fileno ) ; 等を使ってファイル名にして使う。使ったら1増やす。 ・現在時刻をファイル名にする。 例えば、2010年10月26日20時45分37秒だったら 2010-10-26-20-45-37.png 等。保存周期が1秒より短かいなら、ミリ秒単位まで使ったり、連番と併用したりする。 ・ファイルの存在チェックを行い、重複しない名前に変更する。 上の方法なりランダムなり定数なりで名前を作ったら、そのファイルが既にあるかどうかをチェックする。 新規ファイルなら、そのまま使う。 既にあるなら、少しだけ変えて(後に連番付けるとか、一文字ずつ長くしていくとか)再チェック、新規ファイルになるまで繰り返す。

takumoru
質問者

お礼

ありがどうございます。 とても参考になりました。 ガンバってみます。

関連するQ&A