問題タブ [linear-interpolation]
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 - ダイレクトデジタルシンセシスにおける線形補間
私はCでマイクロコントローラーDDSプロジェクトに取り組んでおり、出力値を平滑化するために線形補間を計算する方法を理解するのに問題があります。現在のプログラムで
は、24ビットアキュムレータの上位8ビットを、8ビット出力値の配列へのインデックスとして使用しています。アキュムレータの中間バイトと下位バイトを取得し、配列の「前」と「次」の値の間に値を生成する関数を考え出す必要があります。これは高速ハードウェアでは十分に簡単ですが、マイクロコントローラーを使用しているので、浮動小数点演算や除算を行わないようにする必要があります。
これらの制限があるため、2つの8ビット入力番号と2つの入力値の間の「距離」を表すアキュムレータの下位2バイから8ビット補間値を取得する方法がわかりません。アドバイスをよろしくお願いします!
明確化
DDS=ダイレクトデジタルシンセシス
DDSでは、位相アキュムレータを使用してルックアップテーブルから波形が生成されます。位相アキュムレータには通常、整数成分と小数成分が含まれています。整数コンポーネントは、ルックアップテーブルへのインデックスとして使用されます。単純なDDS実装では、小数部分は無視されますが、高品質の出力では、小数コンポーネントを使用して、隣接するルックアップテーブル値間の補間(通常は線形補間)が行われます。上記の質問では、特定の分数fの2つのルックアップテーブル値間でこの線形補間を効率的に実行する方法を検討しています。ここで、は0 <= f < 1
です。
colors - RGB24から16ビットの色変換-色が暗くなっています
RGB888 24ビットから16ビットRGB565に変換するルーチンの結果、変換が行われるたびに色が徐々に暗くなることに気付きました...式は次のように線形補間を使用します...
16ビットから24ビットへの変換は似ていますが、逆補間を使用します...逆の場合、色が方程式を循環するたびに値がどんどん低くなっていく方法がわかりません...元々はそこにありますダブルへのキャストはありませんでしたが、浮動小数点除算を行うとフォールオフが発生しないと考えました...しかし、それでも...
interpolation - Visual Basic配列で値補間を行う方法は?
こんにちは
特定の粗さの程度の均一な地形がある場合 (等高線の間隔がわかっている場合)、特定の点の周囲のグリッドがわかっている場合、どのように補間を実行できますか?
たとえば、開始標高が 105m で等高線間隔が 0.2m の場合。さらに、7x7 のグリッドが使用可能な場合 (VB の配列である TERR(6,6) )。105 の位置が TERR(4,3) にある場合、その周囲の他の値は 0.2 の値だけ減少し、次のようになります。
104.2 104.2 104.2 104.2 104.2 104.2 104.2
104.4 104.4 104.4 104.4 104.4 104.4 104.4
104.4 104.6 104.6 104.6 104.6 104.6 104.4
104.4 104.6 104.8 104.8 104.8 104.6 104.4
104.4 104.6 104.8 105 104.8 104.6 104.4
104.4 104.6 104.8 104.8 104.8 104.6 104.4
104.4 104.6 104.6 104.6 104.6 104.6 104.4
配列内の数値の分布は、開始標高の位置と配列 (グリッド) のサイズを変更することによって異なります。
多くの記事と内挿法 (neighborhood、cubic、bilinear など) を見つけましたが、誰もこの問題に十分に近づいていませんでした。
ありがとうございました!
c - 浮動小数点線形補間
2つの変数間で線形補間を行い、分数a
を指定するために、現在次のコードを使用しています。b
f
おそらくもっと効率的な方法があると思います。FPUのないマイクロコントローラーを使用しているので、浮動小数点演算はソフトウェアで行われます。それらは適度に高速ですが、それでも加算または乗算するのに100サイクルのようなものです。
助言がありますか?
上記のコードの式を明確にするために、nbは1.0
、明示的な浮動小数点リテラルとしての指定を省略できます。
javascript - 2D環境でオブジェクトをベクトルAからBにパーセント単位で移動する
ベクトル A と B の座標を知っています。これら 2 つのベクトルの間の最初の点をどのようにカウントできますか? 最初のベクトル X は、ベクトル A と B の間の距離の 1% です。そのため、最初にベクトル A のオブジェクトをベクトル B に 1% 近づけます。したがって、ベクトル B に到達するまで、オブジェクトの新しいベクトルであるベクトル X を計算する必要があります。 .
image-manipulation - 双一次補間を使用した画像のダウンサンプリングとアップサンプリング
バイリニア補間を使用して、2D 画像のアップサンプリングとダウンサンプリングがどのように正確に行われるかを理解しようとしています。これで、2x2 近傍値を使用して双一次補間がどのように機能し、重みを使用してこの 2x2 領域内のデータ ポイントを補間するかがわかりました。しかし、私が気づいていないことは、以下で尋ねられます。私の目的と具体的な質問は -
1.まず、値の2Dイメージ(サイズMxN)があります。この画像の幅 (M) と高さ (N) は固定ではなく、場合によって変わります。この 2D 画像は、双一次補間を使用してサイズ PxQ のグリッドにダウンサンプリングする必要があります (P と Q は入力パラメーターとして構成されます)。たとえば、PxQ が 8x8 であるとします。また、入力 2D 配列イメージのサイズが 200x100 であるとします。つまり、200 列、100 行です。
この 200x100 画像の双一次補間を使用してダウンサンプリングを実行しているときに、最初にサイズ 100x50 のダウンサンプリングされた画像を取得する必要があります (双一次補間を使用して両方の次元で 2 だけダウンサンプリングします)。次に、50x25 画像 (再び両方の次元で 2 でダウンサンプリングすることによって)、次に 25x12 画像、次に 12x12 (今回は行に沿ってのみ線形 (バイリニアではありません!) 補間によってダウンサンプリングを行い、最後にいくつかのピクセルをドロップして 8x8 を取得します。 .正確なアルゴリズムまたはこれを達成するためのさまざまな方法へのポインターは高く評価されます。
2.上記の質問は別の質問を提起します-非整数スケール係数による双一次補間を使用してダウンサンプリングする方法、たとえば、8x8画像配列から、両方の次元のリサンプリング/スケーリング係数が整数ではない6x2画像に移動する方法。
3.次に、8x8 サイズの画像を取得したら、元のサイズと同じ MxN に双一次補間によってアップサンプリングする必要があります。8x8 から 20x20 に変更する必要がある場合。行のポイント間でどのように補間し、何らかの方法で行全体を補間しますか。繰り返しますが、整数以外のスケール係数の場合、アップサンプリングの双一次補間はどのように発生しますか。正確な手順。
最後に、これを C で実装する必要があります。
さまざまな例を取り上げてこれらの特定の問題を視覚化しようとしましたが、ダウンサンプリングとアップサンプリング中にこの双一次補間がどのように発生するかを明確に把握できませんでした。私が持っているのは、机の上に「ドットとクロス」の絵が描かれた紙のシートがたくさんあるだけですが、まだ明確な解決策はありません!
詳細な読み物、本は大歓迎です。
sql - SQLで値を補間するための最良の方法
特定の日付のレートのテーブルがあります:
単純な線形補間に基づいて出力レートを取得したいと思います。
したがって、2011年6月17日と入力すると、次のようになります。
線形補間は(5 + 2,4) / 2 = 3,7
単純なクエリ(SQL Server 2005)を実行する方法はありますか、またはこの種の処理はプログラムで実行する必要があります(C#...)?
math - 線形補間フォグ (正しいアルゴリズム)?
したがって、霧に適用される線形補間の私の大まかなアイデアは、ウィキペディアの記事に由来し、これに影響を与えました。
残念ながら、式は正しくありません。この式を修正するとどうなるでしょうか?
c - 線形補間を使用してC(SDCCコンパイラ)でルックアップテーブルを作成する方法
LPC922マイクロコントローラー(SDCC付き)の場合、線形補間を使用してルックアップテーブルを作成します。次のようなx値とy値を取得したと仮定しましょう
線形補間を使用したルックアップテーブルのコードはどのようになりますか?たとえば、x = 850の場合、yの正しい値((171,453 + 126,452)/ 2)を取得しますか?
android - アニメーションの速度を回転させる
アニメーションを1回転だけ回転させたい。持続時間を調整するたびに、同じ速度で回転して長く/遅くなります。どこが間違っているのですか?