二分类图片标签从0-1改为0-255——将图片位深度从1改为8

原始图像位深度为1,21=2,像素值只有0和1两种,也即该图像为二值图

此时图像呈现出黑白两种颜色,在做深度学习时,有的需要将图片标签设置为0-255

这时,需要将图像的位深度改为8,28=256,当图像位深度改为8后,还需将原来的灰度值为1的像素改为灰度值255

从视觉上来看,改前改后没有区别,如果没有将灰度值为1的像素改为灰度值255,那么在图像会显示为全黑色,因为灰度值1接近于黑色,肉眼看不出区别。

# coding=gbk
from PIL import Image
import os.path
import glob
import numpy as np
import cv2

def invert_bit(fname, outdir):
    img = Image.open(fname)
    img_array = np.array(img)
    img = Image.fromarray(np.uint8(img_array))
    # img.save(os.path.join(outdir,os.path.basename(fname)))

    img = np.array(img)
    rows, cols = img.shape 
    for i in range(rows):
        for j in range(cols):
            if img[i, j] == 0:
                img[i, j] = 0
            else:
                img[i, j] = 255
    cv2.imwrite(outdir + os.path.basename(fname), img)

    return img

for jpgfile in glob.glob("./test/re-train-loss/*.tif"):
    invert_bit(jpgfile, "./test/re-train-loss1/")
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐