Python修改二值图像某特定颜色

python 复制代码
#改变图片像素值164-1;255-2;
from PIL import Image
import cv2
import os
# img = cv2.imread("F:/AI/glaucoma_set/gla_img_120_Chall/Annotation-Training400/Disc_Cup_Fovea_Illustration/g0001.jpg")
# img = cv2.imread("F:/AI/glaucoma_set/gla_img_120_Chall/Annotation-Training400/Disc_Cup_Masks/Non-Glaucoma_512/n0001.bmp",cv2.IMREAD_UNCHANGED)  # 读取系统的内照片

def change_pixel(img):
    width = img.shape[0]  # 长度
    height = img.shape[1]  # 宽度
    for i in range(0, width):  # 遍历所有长度的点
        for j in range(0, height):  # 遍历所有宽度的点
            if (img[i, j ,0] != 0 or img[i ,j ,1] != 0 or img[i ,j ,2] != 0 ):
                img[i, j ,0] = 255
                img[i ,j ,1] = 255
                img[i ,j ,2] = 255


    return img
if __name__ =="__main__":
    filePath = 'D:\weldline\code\dataset\VOCdevkit_v3_61\VOC2012\SegmentationClass/'
    savePath = 'D:\weldline\code\dataset\VOCdevkit_v3_61\VOC2012\\new/'
    name = os.listdir(filePath)
    for i in name:
        image_path = os.path.join(filePath,i)
        image_save_Path = os.path.join(savePath,i)
        image = cv2.imread(image_path, cv2.IMREAD_ANYCOLOR)
        img = change_pixel(image)
        img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        cv2.imwrite(image_save_Path, img)

·上面那段代码有的图像会报错,下面这个代码也可以实现,记录一下。

python 复制代码
import cv2
import cv2 as cv

#准备好需要替换颜色的图片yinzhang.jpg
img_rgb = cv2.imread('pictures/old/FeatureLocation5003.png')

Conv_hsv_Gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)

res, mask = cv2.threshold(Conv_hsv_Gray, 0, 255,cv2.THRESH_BINARY_INV |cv2.THRESH_OTSU)

#255为需要保留的颜色(即不被替换的颜色),利用掩膜思想覆盖黑色部分
img_rgb[mask == 0] = [255, 255, 255]

#cv2.imshow("imgOriginal", img_rgb) # show windows
cv2.imwrite('pictures/new/FeatureLocation5003.png', img_rgb, [int(cv2.IMWRITE_JPEG_QUALITY), 70])

##cv2.imshow("mask", mask) # show windows

#cv2.waitKey(0)
相关推荐
你好潘先生4 小时前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师4 小时前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码4 小时前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
copyer_xyf4 小时前
FastAPI 如何连接 MySQL
后端·python
apocelipes18 小时前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户83562907805120 小时前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent1 天前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6251 天前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python
SelectDB2 天前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码2 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python