• ベストアンサー

動画の処理

プログラミングでHelloWorldに毛が生えた程度のことしかできないのに、動画の処理をしなきゃいけなくなりました。 できれば自宅のパソコンでやりたいと考えています。(Windows2000) まず、フレーム間差分からやってみようと思っているのですが、どうやって手をつけていいかさっぱりわかりません。 おすすめの言語、HP、書籍などを教えて欲しいです。 アドバイスとかもいただけると嬉しいです。 よろしく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

1. 動画ファイルから各コマの内容を取り出す。 2. 各コマの内容を比較する。 3. 比較結果を(何らかの形で)出力する。 という処理になるのでしょうが、最後の3.以外はどれもけっこう大変です。最初から1.と2.を同時にやろうとせず、一方ずつ片付けましょう。 1.の目処は立っていますか? MPEGファイルから1コマずつ取り出すにはDirectShowを使うのが楽ですが、「DirectShowって何ですか?」という状態の場合、それでも大変でしょう。 動画ファイルから連続したコマをBMPファイル等に変換するフリーウェアがいくつかあるようですので、そういったものを使って何十枚、何百枚とBMPファイルを作って、静止画を相手にしたほうがよさそうな気がします。 2.は、いきなり動画を相手にしようとしても無理ですから、まず2枚の静止画の内容を比較することから始めましょう。静止画は、いちばん取り扱いの簡単なBMPファイルがいいでしょう。 BMPファイルを読み込んで、内容を調べたり変更したりして、またBMPファイルを出力する・・・というサンプルプログラムは、探せばいろいろ出てきます。 例えば、Googleに「bmp 画像処理」というキーワードを入れて検索すると 画像処理のプログラム http://indy.doshisha.ac.jp/~watabe/Image/n2000/ のようなページがヒットします。

tarariu
質問者

お礼

明確な回答ありがとうございます。大変勉強になります。 処理の流れもわかっていなかったので、こんなに大変そうだとは思っていませんでした。 正直、「DirectShowって何ですか?」という状態です。 BMPファイルを作ることから始めていきます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • joe-
  • ベストアンサー率34% (11/32)
回答No.3

directshowを使ってMPEGファイルを再生する単純なサンプルです。 http://www.geekpage.jp/programming/directshow/renderfile.php directshowを使って動画内のフレームをBMPファイルとして保存するサンプルです。samplegrabberを使っています。 http://www.geekpage.jp/programming/directshow/samplegrabber.php

参考URL:
http://www.geekpage.jp/programming/directshow/
tarariu
質問者

お礼

ありがとうございます。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。
noname#12761
noname#12761
回答No.1

最初にお断りしておきますが私は動画処理についてはアドバイスできる立場にはありません。(つまり知識もスキルもないと言うこと) フレーム間差分と言う事は MPEG フォーマットの動画処理と言うことでしょうか。 通常はそこまで作り込まないで既成の codec を利用したり VB なんかでしたら 動画用のコントロールを貼り付けてハイ終わりって感じですが・・・ 私は回答できないと思いますが ・謙遜しないで tarariu さんの使える言語や実際のスキルのレベル(HelloWorld に毛が生えた程度の人なら「フレーム間差分」なんて言葉は出てきませんから) ・動画のフォーマットやどんな機能を実現する必要があるのか 等もう少し具体的に提示しないと回答は得られないような気がします。

tarariu
質問者

お礼

ご指摘ありがとうございます。 画像処理の本を勉強してましたので、技術自体には多少の知識があるのですが、プログラムはほとんどやったこと無いです。 使える言語はCとJavaで、本を見ながらなら基本構文とJavaで簡単な図形を書ける程度です。 動画はアナログビデオで撮ったものをキャプチャーでとりこんだもの、拡張子がmpeg、それ以外の詳しいことは自分でもよくわかんないです。(すみません、勉強し直します) 実現したいことは、人間のスポーツの初動作の検出です。(例、陸上や水泳のスタートとか) プログラム以外での方法とかも全然わからないので、皆様にいろいろ教えていただきたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 動画処理のライブラリについて

    現在WindowsのVC++で動画ファイル(.avi)に画像処理を行いたいと思っています。 もう少し具体的に述べますと、.aviファイルを読み込み、その映像にエッジ抽出や差分画像抽出などの画像処理を施して、画像処理された新たな.aviファイルを出力するというものです。 しかし、1から画像処理プログラミングを行うほどの知識もなく、どうすれば…と思っていたところ、OpenCVなど画像処理ライブラリというものがあることを知りました。 それを用いて.bmpなどの静止画像のエッジを取ったりというような処理はなんとなくわかったのですが、.aviファイルなどの動画ファイルに対する画像処理の方法がよくわからないのです。 動画というものは静止画の集合なので、動画像処理は静止画像処理を連続的に行えばよいと耳にしたのですが、これは正しいのでしょうか? もし正しいのであれば、.avi動画ファイルにたいして連続的な静止画処理を行い、また.aviファイルを出力するということはOpenCVを用いてできるのでしょうか? また、そういったことが詳しく解説されている書籍や日本語サイトなどがあれば教えていただけませんでしょうか。 素人の質問ではありますが、皆様どうぞよろしくお願いいたします。

  • 動画と音声の処理に強いプログラミング言語は何でしょうか?

    動画と音声の処理に強いプログラミング言語は何でしょうか? カメラとマイクを使った人工知能を持つプログラムを遊び半分で作ってみたいと思っているのですが、どのプログラミング言語で作るかまだ決めていません。 調べたところ、JavaにはJava Media Frameworkなどがありよさそうなのですが、CやC++などにも同じようなものがあるのでしょうか。また他の言語でもっと優れているものはあるでしょうか? プログラミング言語に限らず、音声ファイルをバイナリとして読み込めばいいかもしれませんが、音量や周波数などを取得するために自分でコードを書くのはちょっとつらいのでそれらをしてくれるライブラリがある言語を探しています。また、音声や動画をリアルタイムで処理したいので、それも可能なものがあったら教えて欲しいです。よろしくお願いします。

  • 信号処理とプログラミング

    信号処理とプログラミング こんにちは、私は大学3年生です。電気電子学科に所属しています。 通信の分野に興味があり、MATLABによる信号処理を学ぼうと思っています。 ただ、MATLABって別にプログラミング言語じゃないんですよね? 1,2年の頃は電気回路や電気磁気学といった理論の授業ばかりで、筆記さえできれば、プログラミング能力は必要とされていませんでした。 なので、言語についてはC言語しか知らず、ポインタって星印がつくやつでしょ程度の理解です。 仮にも通信分野に進もうとしている人間がプログラミング能力がこんなものでいいのかと不安に感じてきました。 なのでMATLABを学ぶと共にプログラミング言語もやろうとは思うのですが、フィルター処理や伝達関数や信号処理ってプログラミング言語でできるんですかね? もしやるとしたらC言語とJAVAのどっちがいいんですか? プログラミング言語で具体的にどんなことができるかよくわからないので質問しました。回答お願いします。

  • 綺麗にムダ毛を処理する方法

    綺麗にムダ毛を処理する方法を教えて欲しいです。手、足など 肌が白くて毛が濃いので毛穴が目立ちます ミニスカートや短パンもはきにくいです… おすすめのカミソリやシェーバー、毛が薄くなるクリームなど教えてもらえるとうれしいです。 剃るときに何をつけて剃ると綺麗に剃れる、とか ※脱毛サロンなどではなく自宅でできるもののみの質問です 宜しくお願いします

  • C言語について

    ゲームプログラミングとしてC言語を選んだのですが、 どこから手をつけていけばいいか? どうやって勉強していけばよいかわかりません。 個人的には書籍等を利用し、 勉強しようと思っているのですが、どうでしょうか? もし、お薦めの書籍等ありましたら教えてください。 また、それ以外に良い方法がありましたら、 教えて頂きたいです。 よろしくお願いします。

  • C言語で画像処理

    C言語で画像処理をしたいのですが、元となる画像の形式は何がよいのでしょうか?BMP,GIF,JPEG,PNG,などいろいろな形式がありますよね。一般的には画像処理プログラミングをするときに、どの形式の画像を用いるのでしょうか? また、その画像の読み込み方がわかりません。C言語は入門書を一通りやってみた程度で、画像処理のプログラミングの仕方がわかりません。 初心者なものでよろしくお願いします。

  • 動画処理に必要なもの

    ノート型PCの購入を計画しています。(Dellが有力) デジタルビデオの画像処理をスムーズに処理する為に必要な条件を教えて下さい。(PCハード・ソフトの知識にはある程度自信あります) 用途を限定して価格を抑えたく、動画処理以外には、インターネット、エクセル、ワード程度に限定する予定です。 (モデム、CDRWは付けるつもり) 具体的にお尋ねしたい点は、 (1)プロセッサーの処理能力としてPentium-IIIで大丈夫? 又、プロセッサーのスピード・RAM容量で最低これだけは必要、という水準はありますか? (2)ハードディスクは10GB程度で支障はないか? (処理後の動画データはCDを焼いて保管します) (3)基本ソフトとしてWindowで必要なバージョンは? (4)動画処理用ソフトとして、価格性能面からのお薦めは? その他、部品やソフト、購入時のご経験や失敗談等々、お聞かせ頂ければありがたいです。 よろしくお願い致します。

  • 書籍の情報をください

    猫でもわかるネットワークプログラミングという書籍です。 この書籍をここでは書籍と呼びます。 私はこの書籍が何言語で書かれていて、開発環境がWindows系かLinux系かを知りたいです。レビューなどに多少は載っているのですが情報が非常に少ないです。なのでみなさんに教えていただこうと思いここに質問を投稿いたしました。特に何言語で書かれているかが知りたいです。

  • 透過動画と動画の合成処理

    静止画像で画像Aと透過GIF画像Bを重ねるように, 動画Aと動画Bの2種の花火動画(それぞれ10秒程度;解像度,コーデック等は同じ)をオーバーレイにして2種の花火を1回で打ち上げたように合成したいと考えています.  最初にクロマキー処理を考えました.しかし,背景色は単一ではありません.他の方法として,動画Bの必要な領域を静止画として書き出し,1フレームずつ単一色で塗りつぶして行くことも考えましたが,作業量の多さを思うと尻込みをしています. 今後も特にその他の動画処理をしていこうという事はないので,高価なソフトの購入は今のところ考えておりません(これがあればできるというのがあればご紹介ください.). そこで質問なのですが, 1)動画A,Bを同じ解像度で,必要な動き以外の背景を単一化してオーバーレイ等が比較的簡単にできるソフトがあるかどうか. 2)動画処理で,必要な領域以外の色を比較的簡単に単一にできるソフトがあるかどうか. 3)静止画(BMP)処理で,ドットの色を抽出し,選択した色以外を希望の色に変換してくれるようなソフトがあるかどうか. 4)その他で比較的簡単な方法があるのかどうか. ご教示お願いします.  

  • .NETにて音声や動画をネットワークでリアルタイム転送したい

    .NETにて音声や動画をネットワークでリアルタイム転送したい 初めて投稿します。 プログラミング歴は、大学よりC,C++,VBなど趣味程度のレベルです。 .NETを使って、音声や動画をP2Pでリアルタイムに配信させるソフトを作ってみたいと 考えております。 しかし、恥ずかしながらどこから手をつければ良いのか、全く判りません。 参考になる書籍、Webページなどがありましたら 教えていただけないでしょうか。 よろしくお願いします。

このQ&Aのポイント
  • 中学2年生が定期テスト期間に親や友人、先生からの期待(プレッシャー)に圧倒されて辛い状況になっています。
  • 周囲からは勉強が得意であると思われているが実際は頭が悪く、それをカバーするために倍以上の勉強をしている状況です。
  • テストの日には涙が止まらず、吐き気や頭痛、呼吸困難といった症状が出現し、対処法が分からないためアドバイスを求めています。
回答を見る