2値のBMPモノクロ画像を作成する

ee9king に投稿

あることで、2値画像を作る必要があった。ここで言う2値画像とは、白黒のbmpファイルで、bit深さが1のものである。

openCVでbmpファイルを2値で保存すると、値が0と255だけになった絵になり見た目はできているが、これだと、後処理で使いにくかった。1と0の2つの値からなる、1bit=1画素のbmpファイルにしたい。

どうも、openCVのsaveではそれはできなさそうだった。pillowライブラリを使うと可能。

import numpy as np
from matplotlib import pyplot as plt
from PIL import Image

w=512;
div4=int( w/4 );
col=np.ones((1300,w),dtype="uint8");
col=col*255;
rows=0;
col_ofs=int(0);
for dot in range(0,512,1):
    col_ofs=0;
    col[rows  ,col_ofs:(col_ofs+dot)]=0;
    rows=rows+1;
    if rows>=800:
        break;

fig=plt.figure();
plt.imshow(col)
col_bw = Image.fromarray(col);
col_bw = col_bw.convert('1');
col_bw.save('test.bmp');

 

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
  • 行と段落は自動的に折り返されます。