将黑白tiff影像转为二值jpg或者png影像

话不多说,直接上代码:

def tif_to_bw(input_path, output_path):
    # 获取文件夹下所有tif文件名称,并存入列表
    file_name_list = os.listdir(input_path)
    for name in file_name_list:
        # 获取图片文件全路径
        if name.endswith(".tif") == 0:
            continue
        img_path = os.path.join(input_path, name)
        # 获取文件名,不包含扩展名
        filename = os.path.splitext(name)[0]
        savefilename = filename+".png" # 如果要转为jpg,把这里修改为jpg即可
        # 文件存储全路径
        savepath = os.path.join(output_path, savefilename)
        # 打开TIF图像
        tif_dataset = gdal.Open(img_path)
        # 获取图像的宽度和高度
        width = tif_dataset.RasterXSize
        height = tif_dataset.RasterYSize

        # 读取图像数据
        tif_band = tif_dataset.GetRasterBand(1)
        tif_data = tif_band.ReadAsArray(0, 0, width, height)
        # 将图像数据转换为灰度模式
        # 进行二值化处理
        # 保存为JPG格式
        tif_data = np.uint8(tif_data)
        tif_data[tif_data == 1] = 255
        outputImg = Image.fromarray(tif_data)
        outputImg.save(savepath)
        print("图片:【", filename, "】完成转换")
    print("完成所有图片转换!")

之前转的jpg/png图像原本白色的部分一直是红色的,debug后才发现值不是255是1,遂加了 tif_data[tif_data == 1] = 255这行代码,终于显示正常。希望对大家有所帮助!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值