2

私はそうするソフトウェアを書くことを考えましたAlpha Compositing。インターネットから既製のコードを作りたくなかったので、数学アルゴリズムを理解するための研究論文やその他の情報源を見つけようとし、実装を開始しました。

しかし、私はすぐに道に迷いました。だから私の質問は、

それに基づいてアルゴリズムを書くために、これらの論文にどのようにアプローチして、そこから必要な詳細を抽出する必要がありますか。うまく機能する特定の一連の手順はありますか?

望ましい答え:

  1. 読む ...
  2. エキス ...
  3. 理解 ...
  4. 埋め込む ...

:この質問はアルファ合成だけに限定されないため、より一般的なアプローチが役立ちます。画像処理を実装するために必要な言語であるため、Javaとにタグを付けました。C++

私はこれまで何をしましたか?

これは宿題の質問ではありませんが、もちろん私が知っていることを言う方が良いです。私はアルファ合成のwikiを読みましたが、密接に関連する画像合成の研究論文はほとんどありません。しかし、私は理解から実装に移るために取るべき次のステップに固執しました。

  1. ウィキペディア
  2. テクニカルメモ、画像合成
4

6 に答える 6

4

鉛筆と紙で複雑な数式の記事を読むことをお勧めします。あなたがそれをよく理解するまで、関係する数学を通して働きなさい。これで、コーディングの準備が整います。

一部の画像データでアルゴリズムを実行するために必要な手順を特定することから始めます。画像自体をメモリにロードすることから、実行する必要のある複雑な計算までのすべてのステップを含めます。次に、そのリストを擬似コードに構造化します。それができたら、コーディングはかなり簡単なはずです。

于 2012-08-21T00:05:37.737 に答える
4

擬似コードを記述します。理想的には、研究論文の著者はこれを行ったはずですが、多くの場合、そうではありません。MatlabやPythonなどの単純な言語の擬似コードを記述し、擬似コードに基づいて機能する実装を記述します。

アルゴリズムの一部を理解しているが他の部分は理解していない場合は、理解している部分の実際のコードに擬似コードを実装し、理解していない場所にコメントを残します。

「TracerBullets」の実用的なプログラマーのセクションでは、基本的にこのアイデアについて説明しています。データを何らかの形式の出力に取り込むものをすばやくまとめてから、コードの本体を反復処理して、生成しようとしているアルゴリズムにゆっくりと似せる必要があります。

私の答えは必然的にやや曖昧です。このようなものには特効薬はありません。

于 2012-08-21T00:09:16.157 に答える
3

画像処理アルゴリズムを実装しましたか?おそらく、彩度の低下/色の濃さ、反転(左右および上下逆)、回転、スケーリング、マスクを介した画像の合成など、もう少し単純なものから始めます。

それらを理解したら、アルファコンポジットを実行するのに非常に良い位置になります。

私は、学術論文が実装の詳細を濁って不確実にするために邪魔にならないように見えることに同意します。実用的な実装を開始するには、記述内容を大幅に簡略化する必要があることがわかりました。一般的に急いで、作家はあらゆる側面を過度にパラメータ化します。有用で信頼性の高いソフトウェアを構築するには、機能を追加するためのフレームワークとなるように、実際に機能する単純なものから始める必要があります。そのためには、学問の一般性の80〜90パーセントを捨てる必要があります。多くの場合、多くのシンボリック定数を使用して実行できますが、一般性(たとえば、4次元および5次元の画像)を放棄しても、実際には何も失われません。

于 2012-08-21T00:15:01.693 に答える
1

私の提案は、最初にMatlabを使用してアルゴリズムを記述し、すべての手順を理解していることを確認してから、C++またはJavaを使用して実装を試みることです。

于 2012-08-21T00:08:57.157 に答える
1

上記の良い提案に追加するには、単純なモジュール(オブジェクト指向スタイル)で擬似コードを記述してみてください。全体像を失うことなく、コードの各部分を深く理解する必要があります。すべてを手続き的な方法で書くことは最初は良いことですが、コードが大きくなるにつれて、あなたがやろうとしていることすべてに追いつくのが難しくなるかもしれません。

于 2012-08-21T00:14:07.140 に答える
1

このでは、このトピックに関する独創的な作品の1つであるPorter&Duffによるデジタル画像の合成を引用しています。クラスjava.awt.AlphaCompositeは同じルールを実装します。

于 2012-08-21T00:14:12.473 に答える