問題タブ [raster]
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.
java - BufferedImages を別の BufferedImage に描画する最速の方法
Java で画像のモザイクを作成しようとしています。作成する新しい画像のサイズを計算し、モザイクの一部となる各サブ画像に対して、ペイント コールを実行します。
擬似コード:
これを行うより良い方法はありますか?サブイメージをより大きなイメージに変換またはスケーリングしたくないので、何らかの直接コピー操作が利用できることを願っています。各サブイメージのラスターの配列コピーに似たもの。Raster オブジェクトを受け取る setData メソッドがあることに気付きましたが、このメソッドは、Raster が同じ座標空間にある必要があることを示しています。
何かご意見は?これは私のプログラムのボトルネックであり、できるだけ高速にしたいと考えています。
編集:ボトルネックがどこにあるかについて、私が間違っていたことがわかりました(確かなデータなしで仮定が行われる場合によくあることです)。メモリにキャッシュされた画像の縮小版を使用するのではなく、複数の 3MB の画像が何度も何度も読み取られるというバグがありました。修正すると、実行時間が 50 分から 15 秒になりました。
graphics - Direct3D ベクター出力?
Direct3D 出力をラスター イメージではなく一連のベクトルとして解釈する方法はありますか? このような機能を使用して、レンダリングされた Direct3D 出力を含む PDF ファイルを生成できることを願っています。私は楽観的すぎますか?
java - Javaでピクセルフロート配列からRasterを作成するには?
BufferedImage を取得し、(jtransforms を使用して) フーリエ変換を適用し、データを BufferedImage に書き戻そうとしています。しかし、結果を元に戻すために新しいラスターを作成するのに行き詰まっています。ここで何か不足していますか?
しかし、この行を終わらせようとして困惑しています。 createRaster 関数に何を指定すればよいでしょうか? createRaster の javadoc は、私にはほとんど意味がありません。
float 配列が必要なのかどうか疑問に思い始めていますが、jtransforms の例はあまりありません。
arcgis - ArcObjects: 色にマップされた double 値を使用して IRaster を保存する
いくつかの色にマップされたセルに double 値を使用して IRaster を保存するにはどうすればよいですか? たとえば、(-inf; -50] は青にマップされ、[+50; +inf) は黄色にマップされ、その他は徐々に計算されます。
r - rgdalは大きなマルチバンドラスターを効率的に読み取ります
rgdalパッケージを使用してRの画像分類スクリプトに取り組んでいます。問題のラスターは、トレーニングデータチャネル、検証データチャネル、および26のスペクトルデータチャネルの28のチャネルを持つPCIDSKファイルです。目的は、トレーニングデータチャネルでゼロではない各ピクセルの値と、26バンドの関連するスペクトル値を含むデータフレームにデータを入力することです。
Python / Numpyでは、画像全体のすべてのバンドを多次元配列に簡単にインポートできますが、メモリの制限により、Rの唯一のオプションは、このデータをブロックごとにインポートすることであるようです。これは非常に低速です。
メモリを使い果たすことなく同じことを行うためのより速く/より良い方法はありますか?
このトレーニングデータが収集された後の次のステップは、要求されたツリーの数に応じて、大量のメモリを必要とする分類子(randomForestパッケージ)を作成することです。これは私の2番目の問題につながります。それは、トレーニングデータによってすでに占有されているメモリの量を考えると、500本の木のフォレストを作成することができないということです。
より多くのメモリを割り当てる方法はありますか?私は何かが足りないのですか?ありがとう...
[編集]Janが提案したように、「ラスター」パッケージの使用ははるかに高速です。ただし、私が知る限り、トレーニングデータの収集に関する限り、メモリの問題は解決されません。これは、最終的にはデータフレーム内のメモリ内にある必要があるためです。
したがって、これははるかに高速です(そして必要なコードは少なくなります)が、分類子を作成するのに十分な空きメモリがないという問題は解決されません...これを達成できる「ラスター」パッケージ関数は見つかりませんでしたか? ?ありがとう...
r - ラスターパッケージを使用したrandomForest分類のR問題
randomForestとラスターパッケージに問題があります。まず、分類子を作成します。
この時点まで、すべてが良好です。エラー率や混同行列などを見ると、フォレストが正しく作成されていることがわかります。しかし、一部のデータを分類しようとすると、次の問題が発生し、すべてのNAが返されますpredictions
。
そして、この警告を出します:
ただし、predict.randomForestを呼び出すと、直接正常に機能し、期待どおりの値が返されますpredictions
(画像が大きく、行列全体をメモリに保存できないため、これは適切なオプションではありません)。
「ラスター」バージョンで直接動作させるにはどうすればよいですか?予測{ラスター}の例に示されているように、これが可能であることを私は知っています。
wpf - WPFで使用するための優先ベクター画像形式?
タイトルによると、WPF で使用するのに適した画像形式 (または形式) は何ですか?
私の会社は、デザイナーを雇って、WPF アプリケーションで使用するロゴ、画像、ツールバー アイコンなどをデザインしてもらいます。明確さを失わずに伸びたり縮んだりするはずのベクターグラフィックスを求めようとしていました。
ただし、この投稿を読んで WPFはWMF/EMFファイルの読み取り/書き込みをネイティブにサポートしていますか? 他の人が私を心配させました。単純な作業とは思えない?! これは、WPF がスリープ状態でネイティブに処理することになっているものではありませんか?! 伸ばしたり、回転させたり、炎を投げたり、トーストを作ったり…
windows - StretchBlt は、すべてのスケーリングで HALFTONE == BILINEAR ですか?
ワークステーションの Win32 APIの GDI StretchBlt関数が、 24/32 ビット カラー イメージの大きいイメージと小さいイメージの両方にスケーリングするために双一次補間を実行するかどうかを明確にすることはできますか? そうでない場合、これを行う GDI ( GDI+ ではない) 関数はありますか?
SetStretchBltMode fn には、次のように文書化されている設定 HALFTONEがあります。
HALFTONE 変換 元の四角形のピクセルを変換先の四角形のピクセルのブロックにマップします。デスティネーション ピクセル ブロックの平均カラーは、ソース ピクセルのカラーに近似します。
画像を縮小するときに双一次補間を実行するという参照(最初の回答のフォローアップを参照)を見てきましたが、拡大するとどうなるかについての明確な回答はありません。
Windows Mobile CE SDK が BILINEAR フラグをサポートしていることに気付きました。これは、HALFTONE コメントとは正反対に文書化されています (スケールアップでのみ機能します)。
この質問の範囲では、代替手段として GDI+ (多数の補間オプションがある)、OpenGL、DirectX などを追求することに興味がないことに注意してください。したがって、これらの他の API または代替手段に関するフォローアップを気にしないでください。画像ライブラリ。
私が本当に見つけたいと思っているのは、Win32 (デスクトップ) GDI 動作のこの動作を明確に文書化した、決定的な MS/MSDN またはその他の高品質のドキュメントです。
それまでの間、GDI と Direct2D (これを制御するための明示的なフラグがある) を比較するいくつかの実験を試み、その結果を投稿します。
ありがとう!
r - Rで同じカラースケールのラスタープロットを作成するにはどうすればよいですか?
Rの「raster」パッケージを使用してラスターファイルからいくつかのマップを作成しています。いくつかのマップを並べて表示する比較ラスターを作成したいと思います。このために重要なのは、各マップの値に関係なく、使用されるカラースケールがすべてのマップで同じであるということです。たとえば、マップ1の値が0-1で、マップ2の値が0〜0.5の場合、値が0.5のセルは両方のマップで同じ色である必要があります。
例えば:
- マップ1の値は0から1です
- マップ2の値は0〜0.5です。
- 色は赤(最低)から緑(最高)に変わります
0.5の値を両方のマップで同じ色にします(つまり、赤と緑の中間の黄色)。現在の動作は、マップ1では黄色、マップ2では緑色です。
これを機能させる方法が見つかりません。プロット機能で使用するピクセル値の範囲を設定する方法がわかりません。setMinMax()は役に立ちません(「plot」は常に値を計算するため)。手作業で値を設定しようとしても(たとえば、g1 @ data @ max <-10)、機能しません(これらはプロット時に無視されます)。
最後に、マップのスタックを作成すること(すべてを同じカラースケールでプロットすると予想される場合があります)も機能しません。各マップには、独自のカラースケールがあります。
これを行う方法について何か考えはありますか?
編集:
私が使用することになった解決策は次のとおりです。
algorithm - ラスター パス追従アルゴリズム
下の画像のような値のラスター グリッドがあります (白が高い値、黒の背景値がゼロ)。
私は、行の1つの最後から開始し、可能な限り高い値を経由してもう一方の端までトレースする、ある種のパス追跡コードを記述しようとしています(つまり、行にあるように選択されたピクセルが白くなるほど)良い)しかし、まだ反対側に到達しています。
私はしばらくこれに苦労してきましたが、私がやろうとしていることが何も得られないようです。それで、この種の問題に対して一般的なアルゴリズムがすでに開発されているのではないかと思いました。私は多くの検索を行ってきましたが、ほとんどのパス アルゴリズムは、このようなラスター グリッドではなく、ベクター/ネットワークで動作するように設計されているようです。
何か案は?