web-dev-qa-db-ja.com

一連のビットマップ画像をグレースケールに変換する

RGBでエンコードされたデータを含む一連のbmp画像ファイルがあります。これらすべての画像を同等のグレースケールに変換する必要があります。私はこれに対して2つのアプローチを検討しましたが、どちらも不十分であることが判明しました。

1)IrfanViewとGimpを使ってみました。どちらのソフトウェアでも、個々の画像を読み込んでグレースケールに変換し、グレースケール画像を保存することができました。ただし、500枚の画像があるため、このアプローチは実行できません。どちらも、一連の画像全体にRGBTogreyscale操作を適用できないためです。

2)Matlabを試しました。ただし、何らかの理由で私のファイルはMatlabと互換性がありません。 Matlabでの単純な読み取りでは、画像ファイルを読み込めませんでした。

imgdata = imread('myimg.bmp')  % gives error saying that 'Bitfield compression not supported'

助言がありますか?

3
The Vivandiere

Irfanviewで、[ファイル]"[バッチ変換]に移動します(またはホットキーを押して、 B)、変換するすべてのファイルを追加し、[詳細オプションを使用する]をオンにしてから、[詳細]ボタンをクリックし、[グレースケールに変換]をチェックします。

screenshot of described configuration above

これにより、複数のビットマップ画像をグレースケールにバッチ変換できるようになります。 Irfanviewでサポートされている画像ファイル形式 のいずれかにバッチ変換することもできます。 BMP、PNG、GIF、JPGなど。

4
galacticninja

Imagemagickをお勧めします。これは、サポートされている多くの機能を備えた非常に柔軟なコマンドラインユーティリティです。そのうちの1つはグレースケールに変換されています。

詳細については、この投稿を参照してください。

http://www.imagemagick.org/Usage/color_mods/

tl; dr

convert  test.png  -type GrayScale  grey_type.png

Imagemagickをインストールするには、ここにあらゆる種類のバイナリがあります。

http://www.imagemagick.org/script/binary-releases.php

3
ebrious

受け入れられた答えがありますが、私は私の2セントを与えると思いました。

デフォルトの変換方法を使用してグレースケールに変換したいだけの場合は、IrfanViewがその役割を果たします。ただし、正確に 色の変換方法 をグレースケールに指定したい場合は、使用しているプログラムについて説明します。

これは商用ですが、赤、緑、青がどれだけ寄与するかを指定でき、HSLやHSIなどの他のカラーモデルの明度または強度の「チャネル」を使用して変換を実現できます。 バッチ画像プロセッサ さらに、グレースケール画像を保存するためのさまざまなオプションがあります:8ビットビットマップ、8ビットPNG、8ビットGIF、その他。また、必要に応じて、明るさ、コントラストなど、他の多くの画像処理機能を備えています。

したがって、デフォルトの実装を使用してグレースケールに変換する場合はIrfanViewを使用しますが、柔軟性とオプションが必要で、さまざまなバッチ処理アクションを一緒に作成する場合は、前述のようなより専門的なツールを使用します。 。

1
Fit Nerd

IrfanViewのバッチ処理オプションについて知りました。バッチ処理を使用して、シリーズのすべての画像を一挙にグレースケールに変換することができました。出力されたグレースケール画像はタイプ.PGMでした。

0
The Vivandiere