Python 图像中颜色替换

任务需求:

遍历PATH目录下的文件,若遇到名称为label.png的文件,则将这个图像中像素值为[0, 0, 128]的区域替换为像素值为1的灰度图。

import numpy as np
import cv2
from ptsemseg.utils import recursive_glob
import os

def changecolor(color):
    diffuse_color = np.array([0, 0, 128])

    diffuse_gray = 0
    if (color == diffuse_color).all():
        diffuse_gray = 1

    return diffuse_gray


root = "PATH"
file_list = recursive_glob(
    rootdir=root, suffix=".png"
)

labelname = "label.png"

for file in file_list:
    file = file.replace('\\', '/')
    Filename = file.split('/')[-1] #提取图像名称

    # 取出字符串里的数字
    # num_filter = filter(str.isdigit, lastFilePath)
    # num_list = list(num_filter)
    # num_str_lastFilePath = "".join(num_list)


    if Filename == labelname:
        img = cv2.imread(root + lastFilePath + "/" + Filename)
        new_annotation = np.zeros((img.shape[0], img.shape[1], 1), np.uint8)
        for i in range(img.shape[0]):
            for j in range(img.shape[1]):
                new_annotation[i, j] = changecolor(img[i, j])

        cv2.imwrite(root + Filename + ".png", new_annotation)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AplusX

踩坑不易,打个赏呗~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值