3

符号なし 16 ビット イメージである 4 バンド マルチチャネル イメージ (TIF) があります。私は以下を使用しています:

    opencv2 
    python 

コードの冒頭で次のことを行いました

    import cv2 

私が使うとき

  i = cv2.imread('img.tif') 

4 つのバンドすべてを読み取りますが、UINT8 として読み取ります。私が使うとき

  i = cv2.imread('img.tif', cv2.CV_16U)

画像の 1 つのチャネルのみを読み取ります。4 つのチャネルすべてを 16 ビット符号なしで読み取るにはどうすればよいですか?

4

1 に答える 1

2

flag を渡してみてくださいcv2.IMREAD_ANYDEPTHドキュメントには、このフラグが次のようになると記載されています。

設定されている場合、入力に対応する深度がある場合は 16 ビット/32 ビット イメージを返し、そうでない場合は 8 ビットに変換します。

i = cv2.imread('img.tif', flags=cv2.IMREAD_ANYDEPTH)

それでもうまくいかない場合は、cv2.IMREAD_UNCHANGED代わりにフラグを試してください。文書化されていませんが、動作する可能性があるようです。

于 2013-07-08T20:02:48.107 に答える