質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.33%

  • C

    3991questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C言語open,readを使っての画像の読み込みについて Armadillo

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 348

shuppi

score 35

ボードにあるカメラ機能で撮影した画像をopen、readを使い、画像一覧で表示したいと思っています。
撮影画像はbmpです。

いつ撮影した画像なのか分かるようにしたいので、名前は年月日時分秒_カメラ番号の順(例170106100122_01)で保存したい思っています。

フォルダの中の画像を保存した日時が新しい順に一覧表示したいです。

例えば

fd_pic[no] = open(filename, O_RDONLY)


連番だとfilenameの所はfor文でループさせれば次々と行けるので簡単なのですが、(1.bmp→2.bmp→3.bmp)
日時は刻一刻と変わるので、filenameの所をどうすれば良いか悩んでいます。
年、月、日ごとに比較など すればいいのでしょうか。

自分では良いプログラムが思いつきません。
どなたか御助力お願いします。

イメージ説明
現在は連番で表示してみてます。
連番なら簡単です。(*´ω`)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

opendir() でファイル名一覧を参照してみてはどうでしょうか?
(参考)コンピューター:C言語講座:ディレクトリ内容の読み出し

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/06 10:49

    試してみますー

    キャンセル

0

HiroshiWatanabeさんが回答されているとおり、opendir()を使うのが簡単だと思います。
ただ、ファイル名順に取得できなかった覚えもあるので、その場合はopendir()の結果を
配列等に格納してsortすれば実現できます。
配列やsortを使うのが面倒なら、Cプログラム内からlsやdirコマンドを実行した結果を
取得して順に処理する方法も検討してはどうでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/06 11:45

    試してみます!

    キャンセル

0

日時は刻一刻と変わるので、filenameの所をどうすれば良いか悩んでいます。

もしファイル名をプログラムなどで自動的に付与するのであれば・・・

yyMMdd_hhmmss_SSS.bmp

yy=年,MM=月,dd=日,hh=24時間制での時間,mm=分,ss=秒,SSSミリ秒などとすると以下のように単純化できると思います。

  • ソートはファイル名を単純にstrcmpで比較して決定できる。
    クイックソートが標準的なライブラリーに備わっているのでファイル名一覧を簡単にソートできると思います。ひょっとしたらディレクトリー配下のファイル名一覧を取得する際に実はソート済みになっていたりするかも知れません。

  • ファイル名を決定する際に撮影時刻だけから決定できるので連番の処理を考えなくてよい
    ミリ秒が一致する可能性は考えなくてよいでしょう。また最近のPC OSではNTPサーバーによってPCの時計を自動調整しているでしょうから、日付が狂うといったトラブルの心配もないと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/06 11:45

    試してみます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.33%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • C

    3991questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。