c言語が全くわからない初心者です。
YUV形式の動画を渡されて解像度を上げるいう課題が出されました。
どなたかこれが実行できるプログラミングを教えてください泣
解像度を上げるプログラミング
Re: 解像度を上げるプログラミング
課題の丸投げは禁止です。
他のプログラミング言語はわかりますか?So さんが書きました:c言語が全くわからない初心者です。
その課題で使用するプログラミング言語は指定されていますか?So さんが書きました:YUV形式の動画を渡されて解像度を上げるいう課題が出されました。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
penguin
Re: 解像度を上げるプログラミング
[tab=30]こんにちは
解像度を上げるプログラミングということですが、過去に画像処理を勉強していたことがありその時はCを用いて画像を変換していました。
動画は扱ったことはありませんが動画は画像の集合体のようなものなので実際問題としてプログラミングで解像度をいじることも可能です。
それでは今回の問題についてですが、はっきり申し上げるとその課題はあなたの力ではどう頑張ってもとくことができないと思います。
C言語をはじめなんのプログラミングも習得なさっていないご様子ですが、この解像度を上げるプログラミングは画像の動画を画像単位に分割する、画像をプログラミングに読み込む、読み込んだデータを編集すると言った3つのステップが必要です。そのうちの前の二つについてですがあなたがプログラミングを実行なさろうとする環境(OSとかコンパイラ)や使いたいプログラミング言語などに大きく依存しますので、なんとか手助けしたいのですが質問文中に書かれていることでは助言することができません。
最後の解像度を上げるアルゴリズムについてですがこれは画像のをいわゆるコントラストをいじることで実現できると思います。具体的には画像は画素値というものを持ち、これが例えば0〜255くらいの範囲で異なることにより、表示を行います。今回はこの区分をより鮮明にすることで解像度を上げたことになると思います。具体的なこの部分のC言語のコードの大筋は次のようになると思います。
/*配列 I [ ] に画像が読み込まれているとする*/
for(i=0;i<LAST_I;i++){
I = /*ここに解像度を上げるための具体的な数式を書く、この数式は目的に応じて変更可能、1通りではない、今回は引数にsin何かをかけてみるとうまくいくと思います*/;
if( I < MIN ) { I = MIN; }
else if( I> MAX ) { I = MAX; }
}
プログラミングの経験がないということで全く理解が及ばないかもしれませんが多分、出題者は上に書いてあるようなコードの提出を求めていると思います。
動画を読み込んできて、分割して画像として上のように配列に落としてやってそれを加工すれば良いのです。出題者がひな形などを用意してくれていれば別ですが、言語の指定もなく、動画をぽんと渡されて、これをプログラミングで一から手打ちして編集するとなると実現するのは結構大変です。必修でもなく、プログラミングの経験がないとなるとそのような科目はとるべきではありません。プログラミングを専攻している学生でもいちから作るとなると大変だと思います。プログラミング経験がないなら不可能です。ある一つの言語の基礎を完全に習得していざ実践してみようかというようなレベルの問題だと思います。
失礼かもしれませんが、課題の提出に時間的な余裕がない場合、その科目の単位をあきらめてはどうでしょうか。
言語や環境を正確にご指定いただくならつくれないこともないものですがそれは完全に他人の技術です。あなたがソースコードに手を加えるところは全くないでしょう。
今後おなじような課題が出るたびに苦労なさると思います。プログラミングを専門としていないなら畑違いの科目のように思えてなりません。
プログラミングを習得していない学生が取るのは不自然です。
ここからは想像ですがプログラミングを行わなくてもフリーソフトやツールなどを使うと簡単に動画の加工はできます。
受講生があなたと同じようにプログラミングを専攻していない方たちなら出題者はもしかしたらそういったものを使っての解答を期待しているかもしれません。
もし、ソースコードの提出が不要で、解像度を上げた動画のみの提出ですと多分そうです。
さしでがましいような解答になってしまい、申し訳ありませんでした。
ただ、追加で情報をいただけるなら更に助言をすることも可能だと思いますので、またご質問ください。
解像度を上げるプログラミングということですが、過去に画像処理を勉強していたことがありその時はCを用いて画像を変換していました。
動画は扱ったことはありませんが動画は画像の集合体のようなものなので実際問題としてプログラミングで解像度をいじることも可能です。
それでは今回の問題についてですが、はっきり申し上げるとその課題はあなたの力ではどう頑張ってもとくことができないと思います。
C言語をはじめなんのプログラミングも習得なさっていないご様子ですが、この解像度を上げるプログラミングは画像の動画を画像単位に分割する、画像をプログラミングに読み込む、読み込んだデータを編集すると言った3つのステップが必要です。そのうちの前の二つについてですがあなたがプログラミングを実行なさろうとする環境(OSとかコンパイラ)や使いたいプログラミング言語などに大きく依存しますので、なんとか手助けしたいのですが質問文中に書かれていることでは助言することができません。
最後の解像度を上げるアルゴリズムについてですがこれは画像のをいわゆるコントラストをいじることで実現できると思います。具体的には画像は画素値というものを持ち、これが例えば0〜255くらいの範囲で異なることにより、表示を行います。今回はこの区分をより鮮明にすることで解像度を上げたことになると思います。具体的なこの部分のC言語のコードの大筋は次のようになると思います。
/*配列 I [ ] に画像が読み込まれているとする*/
for(i=0;i<LAST_I;i++){
I = /*ここに解像度を上げるための具体的な数式を書く、この数式は目的に応じて変更可能、1通りではない、今回は引数にsin何かをかけてみるとうまくいくと思います*/;
if( I < MIN ) { I = MIN; }
else if( I> MAX ) { I = MAX; }
}
プログラミングの経験がないということで全く理解が及ばないかもしれませんが多分、出題者は上に書いてあるようなコードの提出を求めていると思います。
動画を読み込んできて、分割して画像として上のように配列に落としてやってそれを加工すれば良いのです。出題者がひな形などを用意してくれていれば別ですが、言語の指定もなく、動画をぽんと渡されて、これをプログラミングで一から手打ちして編集するとなると実現するのは結構大変です。必修でもなく、プログラミングの経験がないとなるとそのような科目はとるべきではありません。プログラミングを専攻している学生でもいちから作るとなると大変だと思います。プログラミング経験がないなら不可能です。ある一つの言語の基礎を完全に習得していざ実践してみようかというようなレベルの問題だと思います。
失礼かもしれませんが、課題の提出に時間的な余裕がない場合、その科目の単位をあきらめてはどうでしょうか。
言語や環境を正確にご指定いただくならつくれないこともないものですがそれは完全に他人の技術です。あなたがソースコードに手を加えるところは全くないでしょう。
今後おなじような課題が出るたびに苦労なさると思います。プログラミングを専門としていないなら畑違いの科目のように思えてなりません。
プログラミングを習得していない学生が取るのは不自然です。
ここからは想像ですがプログラミングを行わなくてもフリーソフトやツールなどを使うと簡単に動画の加工はできます。
受講生があなたと同じようにプログラミングを専攻していない方たちなら出題者はもしかしたらそういったものを使っての解答を期待しているかもしれません。
もし、ソースコードの提出が不要で、解像度を上げた動画のみの提出ですと多分そうです。
さしでがましいような解答になってしまい、申し訳ありませんでした。
ただ、追加で情報をいただけるなら更に助言をすることも可能だと思いますので、またご質問ください。