問題タブ [bicubic]
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 - バイキュービック/バイリニア補間レンダリングのヒントを無視したJava2D画像のサイズ変更(OS X + Linux)
ImageVoodooプラグインを使用してJRuby/Railsアプリでアップロードされた画像のサムネイルを作成しようとしています。問題は、サイズ変更されたサムネイルが...お尻のように見えることです。
サムネイルを生成するコードは、補間レンダリングヒントを「バイキュービック」に設定するためにすべてを正しく実行しているようですが、開発環境(OS X)または本番Webサーバー(Linux)ではそれらを尊重していません。
サムネイルを生成するコードを抽出し、補間レンダリングヒントを明示的に「バイキュービック」に設定して、ストレートJavaアプリとして書き直し(つまり、main()メソッドから開始)、(の欠如)を再現しました。バイキュービックおよびバイリニアのサイズ変更。
OS XとLinuxの両方で予想されるように、サムアニルは醜くピクセル化されていますが、Windowsでは、バイキュービック補間を使用して画像のサイズを適切に変更します。
JVM環境設定や、それを機能させるために不足している追加のライブラリはありますか?私はこれのために壁に対して頭をたくさん叩いています。
audio - 再サンプリングされたオーディオ データのバイキュービック (またはその他の非線形) 補間をどのように行いますか?
私は、WAV ファイルをさまざまな速度で再生するコードを書いているので、波形が遅くてピッチが低くなるか、または速くてピッチが高くなります。私は現在、次のように単純な線形補間を使用しています。
これは問題なく動作しますが、再生周波数を下げた場合 (つまり、速度を落とした場合) にのみ問題なく聞こえる傾向があります。再生時にピッチを上げると、おそらくサンプル情報が失われるため、この方法では高周波のアーティファクトが生成される傾向があります。
バイキュービック法やその他の補間法は、私のコード例のように最も近い 2 つのサンプル値以外を使用してリサンプリングすることは知っていますが、ここで線形補間法を置き換えるためにプラグインできる適切なコード サンプル (できれば C#) が見つかりません。 .
誰かが良い例を知っていますか、または単純なバイキュービック補間法を書くことができますか? 必要に応じて、これに報奨金を出します。:)
更新: 補間メソッドの C# 実装をいくつか示します (最初のものは Donnie DeBoer に、2 番目のものは nosredna に感謝します)。
これらの関数では、x1 は推定しようとしているポイントの前のサンプル値であり、x2 はポイントの後のサンプル値です。x0 は x1 の左側、x3 は x2 の右側です。t は 0 から 1 になり、推定しているポイントと x1 ポイントの間の距離です。
Hermite 法はかなりうまく機能しているようで、ノイズがいくらか減少しているように見えます。さらに重要なことは、波をスピードアップすると、音が良くなるように見えることです。
c# - C#での3次/曲線の滑らかな補間
以下は3次補間関数です。
この関数は、0.0f〜1.0fの量を指定すると、開始値と終了値の間を3次補間します。この曲線をプロットすると、次のようになります。
期限切れのImageshack画像が削除されました
ここでの3次関数は次のとおりです。
これを調整して、2つのプロデュースタンジェントインとアウトを生成するにはどうすればよいですか?
このような曲線を作成するには:(直線の始点から立方体の終点まで)
期限切れのImageshack画像が削除されました
1つの機能として
そしてこれを別のように:(キュービックスタートからリニアエンドまで)
期限切れのImageshack画像が削除されました
誰かアイデアがありますか?前もって感謝します。
css - バイキュービック フィルターを使用した IE6 画像のスケーリング
実際のブラウザ側でいくつかの画像のサイズを変更する必要があるプロジェクトがあります。
IE8、FF3 などはすべてフィルターを適用して画像のサイズ変更をスムーズにするため、これらのブラウザーではすべてが適切に表示されます。
IE7 では、次の修正を適用しました。これはうまく機能します。
ただし、IE6 では、AlphaImage フィルター (PNG ファイルでアルファ透明度を有効にするために使用されるものと同じもの) への参照のみを見つけることができます。ただし、使用方法の例が見つからないか、自分で機能させることができませんでした。
誰かが私に例を提供できますか? 必要に応じて背景画像を使用することもできますが、実際の img タグに適用することをお勧めします。
MSDN リンク (その価値について): http://msdn.microsoft.com/en-us/library/ms532969%28VS.85%29.aspx
CSS で使用しているコードは img に適用されますが、img コンテナーにも適用しようとしました (効果はありません)。
よろしくお願いします:)
リック
image-processing - バイキュービック補間はどのように機能しますか?
このトピックに関するテキストを読んだ後、元の隣接ピクセルのうち 16 個を考慮していることがわかりました。私が知りたいのは、新しいピクセルの色の値をどのように計算するかです。16 ピクセルのカラー値がわかっている場合、新しいピクセルの値をどのように計算できますか?
android - Androidでバイキュービック補間を使用してキャンバス上にビットマップを描画およびスケーリングするにはどうすればよいですか?
キャンバスに実際よりも大きなサイズのビットマップを描きたい。私はcanvas.drawBitmap(bitmap、null、destRect、null);を使用できます。ただし、ソース画像が宛先の長方形よりも見た目が小さい場合、結果がピクセル化されるため、品質が低下します。
バイリニアまたはバイキュービックリサンプリングを使用してビットマップを描画するにはどうすればよいですか?
どんな助けでもありがたいです、ありがとう。
thumbnails - クライアント側で画像のサイズをサムネイルに変更すると、ぎざぎざで醜い画像になります
その場でサムネイルを使用しようとしているので、親指と実際の画像の両方を用意する必要はありません。私は非常にうまく機能したPHP(優れた機能を備えた)でemを実行しましたimagecopyresampled
。
今、私はPHPなしで似たようなことをしようとしています.私は代替案に興味があります. ブラウザにレンダリングをさせるのは良い考えではないようです。Explorer、Safari、および Chrome では良好な結果が得られますが、Firefox と Opera の両方では親指がギザギザになります。これは、バイキュービック補間を使用してスケーリングするかどうかにかかわらず、ブラウザーの機能に関係していることを理解しています。
PHP がバイキュービック補間を使用して以前に行ったように、Javascript でそれを実行できるようにする方法があるかどうか疑問に思っています-ms-interpolation-mode
。一般的に、クライアント側で生成されたサムに対する意見はどうですか? 合理的な代替手段がない場合は、代わりに PHP を使用し続ける方がよいでしょうか?
PS Javascript または CSS を使用して画像を再スケーリングしても問題はありませんか?
interpolation - 画像のリサンプリング バイキュービック補間 Java
画像のサイズを変更しましたが、品質が低いです。バイキュービック補間について聞いたことがありますが、実装コードを取得できません。これが私のコードです:
アップサンプリングとダウンサンプリングを行った後、最高の品質を取得したい。
c++ - バイキュービック補間アルゴリズムの実行時間を改善するにはどうすればよいですか?
私はIntelのC++でいくつかの画像処理ソフトウェアを開発しています。これは、小さな(約1kpx)画像に対してバイキュービック補間アルゴリズムを何度も実行する必要があります。これにはかなりの時間がかかりますが、私はそれをスピードアップすることを目指しています。私が今持っているのは、文献に基づく基本的な実装です。これは、行列の乗算を行わず、補間多項式の一部に事前に計算された式を使用し、最後に固定された、多少改善された(速度に関して)バージョンです。 -行列乗算コードのポイントバージョン(実際には動作が遅くなります)。実装が最適化された外部ライブラリもありますが、それでも私のニーズには遅すぎます。次に考えていたのは:
- 浮動小数点バージョンと固定小数点バージョンの両方で、MMX/SSEストリーム処理を使用したベクトル化
- 畳み込みを使用してフーリエ領域で補間を行う
- OpenCLなどを使用して作業をGPUにシフトする
これらのアプローチのどれが最大のパフォーマンス向上をもたらすことができますか?別のものを提案してもらえますか?ありがとう。
opencl - OpenCL バイキュービック補間カーネルがエラー CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST で失敗しました
バイキュービック補間は一般的な補間方法の 1 つですが、OpenCL で機能する実装が見つかりません。OpenCLでバイキュービック補間を自分で書くことにしたのですが…
カーネル プログラムに問題があります。
カーネル実行を実行すると、プログラムがエラー CL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST で失敗しました。エラーの原因に関するその他の情報はありません。私は javacl バインディング フォーム Google コードを使用しています: http://code.google.com/p/javacl、Ubuntu Linux 10.10 上の AMD Accelerated Parallel Processing SDK 2.3、ハードウェア AMD Radeon 5xxxHD
AMD APP SDK (
float4 val=read_imagef(signal, sampler, (float2)(x+iX,y+iY)); のコメントを外すと、バイキュービック補間 "float4 val=..." のコメント計算はすべてエラーなしで動作します (ただし、バイリニア補間を使用します)。このエラーは、無効なメモリ アクセスまたはレジスタ メモリ オーバーフローが原因であると考えられます。
このプログラムをローカル メモリを使用するように書き直しましたが、まだ正しく動作しません。
この問題に対する決定を知っていますか。
Java ソース + maven2 ビルド. コマンド「mvn clean compile exec:java」を使用して、デモをコンパイルして実行します。
よろしく、イゴール