1

私は次のようにpythonを使用してopencvを使用してpgmを書いています...

   cv.SaveImage("a.pgm",np.array(image.astype(np.uint16)))

したがって、データを符号なし 16 ビットにキャストしています。問題は、pgm の書き込み中にグレー レベルの最大値が 65535 に設定されていることです。私のデータの最大値は 1103 です。

私が推測するのは、opencv で pgms を保存するときに、値は実際のデータではなく、データ型によって計算され、最大値に設定されるということです。

最大グレーレベルの正しい値が書き込まれるようにする方法を誰かが教えてくれるでしょうか。

どうもありがとう。

4

2 に答える 2

0

保存する前に、画像に変換係数を掛けるだけです。あなたの場合、要因はになります65535 / 1103ConvertScaleを使用してこれを行うことができます。これにより、配列をスカラーで乗算できます。このような:

cv.ConvertScale(im, im, scale=65535 / 1103.0)
于 2012-05-14T13:36:46.850 に答える