どこにでもいるSEの備忘録

たぶん動くと思うからリリースしようぜ

【備忘録】PNGファイルからn次元チャンネルの形式でファイル出力する

前回はこんな事をやっていました。

nogawanogawa.hatenablog.com

各画素がどうなっているかは判断できたんですが、pythonなので変換自体の性能が悪いです。 後続処理があるためデータの読み込みに時間をかけられないので、変換済みのファイルを予め出力してしまって、それを読み込むようにしようかと思いましたので、その備忘録です。

前回のおさらい

PNGファイルはこんな感じで保存することでデータ量を圧縮していました。

f:id:nogawanogawa:20181202142624j:plain:w500

今回は、画像のクラスをチャンネルとして次元拡張した状態で保存します。 イメージとしてはこんな感じですね。

f:id:nogawanogawa:20181209110745j:plain:w650

コード

ファイル読み込み

前回同様、PNGファイルをパレットモードで読み込みます。

変換

今回は、パレットの番号ではなく、クラスの次元数の0/1のベクトルで表現します。

とはいえ、やることはめちゃめちゃ簡単で、こんな感じです。

なんか数字見ている感じは正しそうなんで、いい感じですね。

単純にfor文を使ってパターンマッチングしてます。 もっと効率いいやり方あるんだろうか?

保存

変換した画像を保存していきます。

簡単ですね。

感想

まあ、、、普通ですね。。。

別に難しい事やってないですが、必要になった時に忘れてしまうんです。 ファイル出力にやたらと時間がかかっていたので、暇つぶしのブログでした。