問題タブ [hdr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - HDR 画像から明るさ (露出) を選択する
私は現在、写真からのビデオプロジェクトで立ち往生しています。
問題 :
バグのため、UE4 から画像を抽出しています。スクリーンショットのレンダリング中にすべてのライトが考慮されるわけではありません。出力は HDR 画像です。最初の露出のように、エクスポートされた画像が非常に暗いため、明るさを改善したいと考えています。
UE4 で「露出バイアス」パラメータを使用すると、シーンの明るさを十分に調整できますが、このパラメータをスクリーンショットのレンダリングに適用することはできません。
試行:
Tonemapper アルゴリズムを使用すると (具体的cv::TonemapDrago
には)、より良い画像結果を得ることができます:
私の場合、トーンマップアルゴリズムの主な問題は、領域の明るさに応じてグローバルな明るさが変化するためです。2番目の画像では、ウィンドウが多くの光を追加するため、アルゴリズムはすべての明るさを低くして平均を調整します. レンダリングされたビデオでは、光の変化は非常に残忍です。
明るさと彩度を変更しようとしましたが、成功しませんでした。アルゴリズムのいくつかのステップTonemapDrago
で定数を使用しようとするコードを修正しました。
質問 :
HDR画像から「露光時間を選択」したいです。トーンマップは、同じ画像の複数の露光時間に基づいていますが、私の場合は興味深いものではありません。
他のアイデアは大歓迎です。
編集:
CV::マットの深さは 5、タイプは CV_32FC3
cout << mat.step
19200ください
私の問題を解決するために使用する2つのサンプルを次に示します。
編集2:
gimp で .HDR 画像を開くことができません。イベントは「explosure blend」プラグインを使用しています。Photoshop を使用して十分な結果を得ることができます。その背後にあるアルゴリズムのアイデアはありますか? OpenCV による 6 つのトーンマップ アルゴリズムのいずれかで、露出補正を選択できます。
編集3:
私はopenGLのこのチュートで説明されているアルゴリズムに従いました。これにより、このC +コードが提供されます。
このアルゴを .HDR 写真に適用すると、ガンマと露出を 1 と 1 に補正しても非常に明るい結果が得られました。
コードを読むと、引数として 1 と 1 が画像を変更してはならないため、何か問題があります。それを修正し、回答が投稿されました。@ user3896254に感謝します(Geもコメントで見ました)
java - HdrHistogram Java ライブラリの使用に関するヘルプが必要
HdrHistogram Java ライブラリを使用していますが、目的の出力が得られません。ライブラリまたは期待値にエラーがあることを理解していただけますか。
この場合、出力が 1000000 になることを期待していますが、実際の出力は 1000003 です。
なぜこうなった。私のmaven設定は次のとおりです:-
webgl - OpenGL の glDrawBuffers を実装するための webGl の代替方法は何ですか?
HDR によるブルーム ポスト プロセス エフェクトの実装に取り組んでいます。私は、同じ効果を行うためのオンライン チュートリアルであるが、最新バージョンの OpenGL に基づいている (チュートリアル) 足場を使用しています。シェーダー スクリプト用に OpenGl ES 2.0 で WebGL 1.0 を使用しています。例は、この renderBuffer 生成スクリプトです (注 4 行目):
three.js - エディターでの threejs hdr 環境マップ
この例のような hdr 環境マップをロードできるように、threejs エディターを拡張したいと考えています: http://threejs.org/examples/#webgl_materials_envmaps_hdr
サンプル コードを app.js の Start() 関数に正常にロードしました。エディターでまったく同じコードを実行すると、サンプル トーラスがシェーディングなしで明るい白に表示されます。
環境マップがロードされたときに自動的に行われることはありますか? または、なぜ正常に動作しないのでしょうか?
これは私が使用しているコードです:
hdr - Timothy Lottes ジェネリック トーンマッパー
私は、Timothy Lottes による一般的なトーンマッパを作成するプレゼンテーションを見ています (スライド 37 以降)。
さまざまなパラメーターの目的はうまく説明されていますが、適切に調整するのはかなり難しいと思います。さまざまなトーンマッパーを比較するための簡単なスクリプトを作成しましたが、一般的なトーンマッパーの適切な設定を見つけるのに苦労しました。
一般に、曲線の肩を他の演算子と同等に動作させることはできません。私の実装の間違いかもしれません (元のソース コードはスライドにあります)。
たまたまこれを試した人はいますか?
matrix - HDR 色空間変換により、負の RGB 値が生成されます (Yxy から XYZ から sRGB)。
現在、古いエンジンに HDR を追加していて、色空間変換の問題に遭遇しました。
- Yxy 色空間でライトを定義しています
- 次に、Yxy を XYZ に変換しています
- XYZ から sRGB への変換。
- 最終的にトーン マッピングを使用して結果をレンダリングおよび正規化するときに、RGB 値 > 1.0 を使用します。
主な光源は最大 150k ルクスの照度を持つ太陽であるため、かなり大きな数で作業しています。
YxyToXYZ 関数
XYZtosRGB
テストサンプル:
質問:
- 負の値は取り除かれるべきだと思いますか?それとも、計算に誤りがありますか?
- 2 つのマトリックスは、似ているが異なる値を生成します (原色は sRGB に非常に近い)。古いマトリックス (どこから来たのかわかりません) をWikiのものに置き換えたいと思います。古いマトリックスがどこから来て、どれが正しいものになるか知っている人はいますか?
- 元同僚のように聞こえる@ YxyからRGBへの変換の部分的な回答を見つけました:) ...しかし、私の問題は解決しません。
どうもありがとう