問題タブ [jpeg2000]
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 - Javaでjp2画像をBufferedImageに読み込む方法
javaでjp2画像をBufferedImageに読み込みたいです。Java Advanced Imaging JAI をインストールしました。これは私のコードです:
ただし、次のエラーが表示されます。
この操作はbmpイメージで実行可能ですが、JAIライブラリがjp2イメージを読み取れない理由がわかりません..
何かヒントをください???
firefox - Firefox プラグインはデータをロードしませんか?
Web 上で公開したい JPEG2000 画像がいくつかあります。これを行うには、LizardTech ExpressView ブラウザー プラグインを使用する予定です。( http://www.lizardtech.com/downloads/category/#pluginsにあります。) IE と Firefox の両方でプラグインを表示するために必要な HTML を含めるための手順がいくつか提供されています。IE では動作しますが、Firefox では動作しません。次の HTML は、画像がロードされていない ExpressView プラグインを示しています。
私の理解では、外側のオブジェクト定義は IE が使用するものであり、内側のオブジェクト定義は Firefox が使用するものです。参考になるかわかりませんが、ページ読み込み時にFirefoxの開発者ツールのネットワークタブを見ると、relax.jp2をリクエストしているのに、なぜかゼロバイトを返しているようです。適切な構文を知っている人はいますか? また、最終的には、ユーザーがプラグインを持っていない場合にプラグインをダウンロードするためのリンクを含めたいと考えていますが、それは難しくないと思います. ありがとう!
編集:コードの貼り付けをクリーンアップしました。ごめんなさい。
javascript - セシウムでプログレッシブ レンダリング レイヤーを実装する
サーバーから送信されたラスター データを表示するレイヤーを実装しようとしています。サーバー プロトコルによって送信されるデータは、広く使用されているブラウザーに組み込まれていません (これは jpeg2000 データです)。したがって、私は自分でデータをデコードし、セシウムに表示させます。
少し複雑な理由:
サーバーはステートフルであるため、クライアントとサーバーの両方がチャネルを維持する必要があります。チャネルは、単一の関心領域に関連付けられています。地域は時間の経過とともに変化する可能性がありますが、すべての時点で、サーバーがチャネルでデータを送信する地域は 1 つだけです。セッションでいくつかのチャネルを使用できますが、チャネルが非常に少ないとサーバーのパフォーマンスが低下します。
関心領域の解像度は均一です (したがって、3D では問題があります)。
サーバーは、データのプログレッシブ送信をサポートしており、使用可能なネットワーク リソースが非常に少ないため、使用したいプロパティ (jpeg2000 の「品質レイヤー」) を徐々に向上させます。
デコードは、CPU 時間の点で重いです。
最初の段階として、レンダリング エンジンによって要求された各タイルのチャネルを作成するだけの ImageryProvider を実装しました。それは機能しましたが、接続が多すぎて、プログレッシブ レンダリングを楽しめませんでした。さらに、パフォーマンスが低かったため、セシウム ビューアのビュー エリア内のタイルを最初にデコードする優先メカニズムを実装することで、問題はほぼ解決されました。
次に、表示領域に応じてチャネルの関心領域を変更する自己レンダリング ラスター「レイヤー」を実装しました。その後、複数チャンネルの問題は解決され、プログレッシブ レンダリングを楽しむことができました。ただし、次の問題が発生しました。
a. デコードされたピクセルを表示するために使用した方法は、デコードされたピクセルを含む単一のキャンバスを表示する画像プロバイダーを実装することでした。画像が更新される (再配置またはプログレッシブ デコード) たびに、古い画像プロバイダーを削除して新しいものに置き換える必要がありました。これは正しい方法ではないと思います。また、古いプロバイダーを新しいプロバイダーに置き換えると、z オーダーが間違っているなどの悪い動作が発生する可能性があります。これらの問題のいくつかは、イメージ マテリアルでプリミティブを使用することで解決される可能性があります。ただし、画像のデータ URL 形式を使用する必要があります。これを行うと、キャンバスからデータ URL への多くの変換が発生するため、パフォーマンスが低下します。
b. ビュー領域をサーバーに送信するために、ビュー領域を理解するための特別なコードを作成する必要がありました (pickEllipsoid および同様の機能を使用)。このコードは、Cesium エンジン内で行われる何かの複製だと思います。さらに、pickEllipsoid が 2D でサポートされていないことをいくつかのディスカッションで見ました。一般的に、自分でそのコードを実装するのではなく、ビュー領域を計算する関数があることを非常に嬉しく思います。
c. 私がそれを実装した方法は、API の問題を引き起こします: 画像プロバイダー (addImageryProvider() メソッドと removeLayer() ) を追加および削除するための Cesium の優れた API とは対照的に、私の実装では、ユーザーは私が彼に公開するメソッドのみを使用する必要があります。 (たとえば、Viewer を引数として受け入れる add() メソッド)。
d. 3D モードでは、解像度が均一でない場合、画像は近接領域で鮮明ではありません。サーバーの動作方法に固有の問題であることはわかっています。指摘してください。
ここで本当に欠けているのは、ImageryProvider のインターフェースよりも強力なプラグインを実装する方法だと思います: レンダリング エンジンからビュー エリアの変更イベントを受け取り、いつ、どのように決定できるかを決定できる自己レンダリング ラスター レイヤーを実装するタイルを更新します。別の代替手段 (これは私にとってはさらに優れていますが、他の人にとっては再利用性が低いと思います) は、ビュー領域内のタイルのリストを ImageryProvider 実装に公開することです。
このシナリオに対処する正しい方法は何ですか?
c++ - JPEG 2000 ファイルストリームを切り詰めるには?
テスト用に .j2k ファイルに含まれている JPEG 2000 ファイルストリームから高品質レイヤーを抽出しようとしています。ファイルストリームを送信する方法を学び、最終的に関心領域 (ROI) の選択を実行するために、これを実行しようとしています。これらのことをデコードせずに実行したいのですが、今のところ唯一のユーティリティは OpenJPEG ライブラリです。
image_to_j2k ユーティリティ (Linux) を使用して、テスト イメージを .j2k ファイルに含まれるファイル ストリームに変換しました。次に、.j2k ファイルをバイナリ モードでバッファーに読み込みました。
out2 および out3 ファイルに書き込まれるバイト数は、ランダムに選択されるのではなく、OpenJPEG が圧縮中に作成するインデックス ファイルから取得されます。ファイルを最初から取得し、品質レイヤーの最後に対応する「end_pos」マーカーがあることをインデックス ファイルが示す特定のポイントまで読み取ると、ファイル - これが最終的な目標です。ファイルをワイヤレスでフォレスト内に送信し、フォレスト内の別の場所にあるハンドヘルド デバイスまたはラップトップで画像を段階的により良い品質で表示することです。out2.j2k および out3.j2k ファイルで j2k_to_image を使用しようとした結果は次のとおりです。
私はこれを完全に間違った方法で行っていますか? JPEG 2000 を使用しないことは論外です。回答に感謝します。このことに関するドキュメントを実際に調べましたが、この詳細が見つかりません。
java - Android: 入力ストリームから画像タイプ (jpeg または jpeg2000) を定義します
画像を含む入力ストリームがあります。画像はjpeg
のようにすることができjpeg2000
ます。私はそのストリームをログに記録し、次を参照してくださいjpeg2000
:
そのためjpeg
、それは次のようなものです
私の理解では、画像タイプを返すいくつかのマジック バイトがストリームにあるはずです。それらを取得する方法はありますか?それはAndroidと互換性があるはずです
python - glymurによるpython jpeg2000圧縮
glymur モジュールに詳しい人はいますか?
このモジュールを使用して、さまざまなjp2kタイプの歪み画像を生成したいのですが、このモジュールを適用する方法が本当にわかりません.glymurのコード公式ページを見つけました.
https://glymur.readthedocs.org/en/release-0.7.3/how_do_i.html#read-images
しかし、エラーが発生したようです。
「D:/1.jp2」からjp2ファイルを読み取り、これを「D:/2.jp2」に保存するコードの一部を誰かに見せてもらえますか?
python - Pythonで圧縮率が異なるjp2kの歪んだ画像を生成する方法
現在、glymur パッケージを使用しています。生成された画像を異なる圧縮率で制御できる方法はありますか?
の後ろにいくつかのパラメーターを追加する必要があると思いますがnumres
、同じ画像になりました。おそらく私のnumres
は有効ではありません。誰でもこれを手伝ったり、他の方法を適用したりできますか?
liferay - Tomcat で読み取った J2K が機能しない
Java アプリケーションでJ2K イメージ ファイル (jp2、jp2000)をロードする際に問題に直面しています。奇妙なのは、スタンドアロン Java アプリケーションとして (またはテストで) 実行すると、アプリケーションが正しく実行される (ファイルがディスクから正常に読み取られる) という事実です。
Tomcat アプリケーション サーバーにデプロイした後、ImageIO.read(..)メソッドは毎回 null を返します。
どんな助けでも感謝します。
シモン
image-processing - .j2c ファイルを書きたい
FreeImage で DCINEMA 用の j2c ファイルを作成してテストしたいのですが、結果のファイルは j2c と互換性がありません。
IfanView (イメージ ソフトウェア) は、「result.j2c」は拡張子が正しくない jp2 ファイルであると言い、result.j2c から result.jp2 に名前を変更します。
j2c ファイルの作成方法がわかりません。
私のコードは以下の通りです:
私は何をすべきか?