srcって & cvCaptureFromAVI() のコーデック?について
す,srcって,sourceのことかー!!!考えたこともなかった…
(い,idxは,indexのことか!)(iiiは…,何だっけ?)
なんか外人さんのあだ名の付け方みたいや.Elizabeth⇒Bethみたいな.TonyはAnthonyや.
しかし,今日は完全にOpenCVのaviファイルの読み込みに持ってかれたのでメモ.
“ビデオコーデック”に,またしても苦しめられた….
本日したかったのは,ビデオクリップからの静止画吐き出し.
取り敢えずcodeをめもめも↓
#include <stdio.h> #include <highgui.h> int main(void){ CvCapture* capture = NULL; // 指定したaviファイルが見つからない場合 if((capture = cvCaptureFromAVI("avifile.AVI")) == NULL){ printf("指定のaviファイルが見つかりませんでした.\n"); return -1; } IplImage *frameImage; char filename[32]; int counter = 0; cvNamedWindow("Source Image", CV_WINDOW_AUTOSIZE); cvMoveWindow("Source Image", 50, 50); // 処理ループの開始 for(;;){ // aviファイルからフレーム画像を取り出す if(NULL == (frameImage = cvQueryFrame(capture))){ break; } // 画像表示 cvShowImage("Source Image",frameImage); // 連番つけて画像を保存 sprintf(filename,"frame/img_%03d.jpg",counter++); cvSaveImage(filename,frameImage); } cvReleaseCapture(&capture); cvReleaseImage(&frameImage); cvDestroyWindow("Source Image"); return 0; }
一番悩んだのは capture = cvCaptureFromAVI("avifile.AVI") のとこで,何回やってもNULLが出てきたので色々と調べたところ,どうもコーデックのせい.(MMnameで見たらDivXじゃないか…今考えたら当り前じゃ.)
やっぱ無圧縮がよかろうと思い,変換しようと思ったんだが,freesoft嫌いが発動して最初はAfterEffectsで書き出し.2秒のQVGAが32MB….しかしこれでもOpenCVに嫌われて,次は違うページに書いてあったVFWとかゆうコーデックでチャレンジだ!と思ったら単にVideoForWindowsの略で脱力したりと.無知だと疲れる.まったく.
まぁ以上は蛇足で,結局
SUPER ©
http://www.erightsoft.com/SUPER.html
というフリーソフト(素晴らしい使いごこちのよさ)で無圧縮で試してみたところ,やっと成功しました.フリーソフト万歳や.
この時8MB.AEのファイルサイズは一体何だったんだ….こいつの書き出し実態の不透明さにはここ3年くらいかなり苦しめられてんなー.
ただ,wmvコーデックにして書き出しても再びNULLでした.SUPER ©を紹介していたサイトではwmvで書きだしちゃえば良いと書いてあったんだが….何のコーデックだったら読めるのか,今度確認する必要がありそう.
連番ファイルは右を参考に.http://questionbox.jp.msn.com/qa4213086.html
ところで今日WBSを見ていたら,
先ほどメジャーリーガーのマイアー選手と言いましたが,正しくはマウアー選手でした.失礼いたしました.
と言ってたのを聞いて,あ,WBSって録画じゃなかったんだって思った.内容的には録画でいいよね.
ついでに番組の最後で今週の有識者が
「自民と民主の景気対策はコインの表裏.自民の企業援助も,民主の家庭援助も同じことを言っている.問題はビジョンと財源」
と言っていたが,コインの表裏というよりダンゴ虫の表裏ではなかろうか.民主党のマニフェストは耳触りが良すぎる.環境車補助金延長とか.今後下方修正しませんように.油は…出してね.
そして…,やーっぱり官僚のどたばた人事が悪しき風に報道されてる.たしかに悪しき….うーん.官僚人事はあまりに悪しきため,…って,誰も元ねたわからんよね