Trimaps(3つの値のマップ)データの読み取り

Oxford-IIIT Pet Datasetをダウンロードして使用しましたが、トライマップでした。

これはtfで直接読み取ることはできません

PILも試しました:

https://stackoverflow.com/questions/41777654/opencv-using-a-trimap-imageで答え を見つけることをお勧めます

コードは次のように表示されます。

import io
import os
import tensorflow as tf
import PIL
import matplotlib.pyplot as plt
import numpy as np

with tf.gfile.GFile("Abyssinian_1.png", 'rb') as fid:
    encoded_mask_png = fid.read()
encoded_png_io = io.BytesIO(encoded_mask_png)
mask = PIL.Image.open(encoded_png_io)            
plt.imshow( np.array(mask) / 2 * 255 )

効果は次のとおりです。

 次に、読み取ったデータを配列に変換できます。

import io
import os
import tensorflow as tf
import PIL
import matplotlib.pyplot as plt
import numpy as np

with tf.gfile.GFile("Abyssinian_1.png", 'rb') as fid:
    encoded_mask_png = fid.read()
encoded_png_io = io.BytesIO(encoded_mask_png)
mask = PIL.Image.open(encoded_png_io)            
np.array(mask)

効果:

おすすめ

転載: blog.csdn.net/zhou_438/article/details/108756988