1

EXR を結合する際にいくつかの問題が発生しました。PNG などを使用しても問題ありません (ImageMagick を使用)。

同じサイズの画像が 4 つあります。これらを結合して、より大きな画像を取得する必要があります。各画像は、大きな画像の一部 (左上、右上、左下、右下) を表します。各画像には、情報 (色、深さなど) を含む N 層が含まれています。これらのレイヤーは、最終的な画像で組み合わせる必要があります。

各画像には次の署名があります。

$ identify imput_tile_0001.exr
imput_tile_0001.exr EXR 400x225 400x225+0+0 16-bit DirectClass 2.501MB 0.000u 0:00.000

次のようなImageMagickの簡単なコマンドを試します

$ convert +append *.exr out.exr
$ montage *.exr -tile 2x2 -geometry +0+0 out.exr

これらのコマンドは、正しいサイズで、レイヤーが 1 つだけの完全に黒いイメージを返します。

私は、Debian で作業している、あらゆる言語またはあらゆるソフトウェアを使用したあらゆるソリューションに対してオープンです。

編集: 4 つの EXR タイルは次の場所にあります: https://www.dropbox.com/sh/p6h8kh5wlroy5bb/AACMuR8WieZ-SqB3qXHFwk_ea?dl=0 (これらは「imput_tile...exr」です)。

何か案が?

4

1 に答える 1

1

私は EXR 形式の画像の専門家ではありませんが (見たこともありません)、EXR 形式の画像vipsを処理できることは知っています。あなたの画像がどのように見えるかさえわかりませんが、これがあなたが望むことをしているかもしれないと思います/願っています.

まず、画像を調べて、このような 400x225 ピクセルの 4 つのバンドであることを確認します

vips im_printdesc input_tile_0000.exr
400x225 float, 4 bands, srgb, setbuf VipsImage (0x7fda0984f000) count=1 9600 bytes
width: 400
height: 225
bands: 4
format: 6 - float
coding: 0 - none
interpretation: 22 - srgb
xoffset: 0
yoffset: 0
xres: 1.000000
yres: 1.000000
filename: "input_tile_0000.exr"

次にleft-right join、目的の結果の一番上の行を取得するためにa を実行します。

vips im_lrjoin *0.exr *1.exr top.v

次に、別のleft-right joinことを行って、目的の結果の一番下の行を取得します。

vips im_lrjoin *2.exr *3.exr bot.v

次にtop-bottom join、上部と下部を結合して最終結果を取得します。

vips im_tbjoin top.v bot.v result.v

そして、私がそれを見ると、元のものと同じ寸法と同じ数のバンドとコーディングを持っているように見えます:

vips im_printdesc result.v
800x450 float, 4 bands, srgb, openin VipsImage (0x7f975b84d010) count=1
width: 800
height: 450
bands: 4
format: 6 - float
coding: 0 - none
interpretation: 22 - srgb
xoffset: 0
yoffset: 0
xres: 1.000000
yres: 1.000000
filename: "result.v"

ノート

  1. xyz.v形式はのvips内部の効率的な画像形式です

  2. vipsは、多くの言語へのバインディングで利用できます。ここvipsのWeb サイトを参照してください。

  3. top.v私が作成した中間ファイル(および)をキャッシュできるかもしれませんがbot.v、方法がわかりません

  4. vipsメンテナーは @ user894763 として SO にいて、彼は私の考えにもっと光を当てることができるかもしれません - 願わくば!

于 2015-06-28T10:15:26.177 に答える