LoginSignup
1
1

More than 3 years have passed since last update.

"PNG 8-bit RGB 256c"フォーマットのセグメンテーション画像をPILで作る

Last updated at Posted at 2019-09-18

0. 概要

多くのセグメンテーション用画像で用いられているPNG 8-bit RGB 256cフォーマットの画像。これを作るのって実は難しい。例えば、Imagemagicを使えばconvert xxx.png -colorspace RGB -colors 256 png8:xxx.pngもしくはconvert xxx.png -depth 8 xxx.pngなんていう変換を掛けてあげれば前述のフォーマットに変換することができるが、2cになってしまったりする場合があったりで上手く行かない場合がある。また出来ればコマンドを叩かず、プログラム上で完結させたい。

そこでPILでよく例に挙げられるのはpilImg.convert('L')でグレイスケールに変換する方法がある。しかし、これだとPNG +0+0 8-bit sRGBのフォーマットになってしまい、カラースペースが異なる。

色々調べたものの、中々目的の方法にたどり着けず、試行錯誤してようやくPNG 8-bit RGB 256cのフォーマットにする方法を見つけたので共有したいと思う。

1. PNG 8-bit RGB 256cを作る

PILで作った3chのセグメンテーション画像をpilImgとする。
これを以下の手順で変換する。

R, G, B = pilIMG.split()
R.save(fileName, "png")

これだけでPNG +0+0 8-bit RGB 256cのフォーマットを作成することができる。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1