1

画像処理にRを使用しています(パッケージEBImage)

入力「jpeg」画像があり、「R」を読み取って試行するとprint(Input_Image)、次の出力画像が得られます

  colorMode    : Color 
  storage.mode : double 
  dim          : 3888 2592 3 
  frames.total : 3 
  frames.render: 1 

ここで、このカラータイプの入力画像を8 ビット グレースケールイメージ タイプに変換したいと思います。

手動検索とインターネット検索で疲れ果てましたが、解決策が見つかりませんでした。最終結果が 8 ビットになると予想されるため、出力グレースケール イメージの最大値は 255 になります。

R EBImage ですぐに利用できる関数を使用すると、値が 0 と 1 の範囲にある double 型のグレースケール イメージしか取得できません。

4

1 に答える 1

0

の属性を変更することで、画像をグレースケールに変換できますcolorMode。コメントにリンクされているファイルを使用して、次のことを試すことができます。

library("EBImage")
img <- readImage("16_left.jpg")

これで、ファイルが読み込まれ、保存されましたimg(JPEG ファイルが作業ディレクトリにあると仮定します)。

> img
Image 
colorMode    : Color 
storage.mode : double 
dim          : 1279 853 3 
frames.total : 3 
frames.render: 1 
...

これで、画像をグレースケールに変換できます

img@colormode <- Grayscale

また

colorMode(img) = Grayscale

変換された画像は、PNG ファイルとして保存できます。

writeImage(img,file="16_left_bw.png")

この例では、3 つのイメージが作業ディレクトリ 、 、および に保存され16_left_bw-0.pngます16_left_bw-1.png16_left_bw-2.png

これらの画像の最初のものは次のとおりです。

ここに画像の説明を入力

標準の画像ビューア (ここでは ubuntu の ImageMagick を使用) による分析によると、画像は 8 ビット形式で保存されています。データは引き続き double 形式で保存され、範囲は 0 から 1 です

> range(img@.Data)
[1] 0 1

ただし、256 レベルのみが使用されます。 ここに画像の説明を入力

お役に立てれば。

于 2015-09-23T16:50:47.680 に答える