图片组成

[
[[245 227 220]
[245 226 219]
[245 227 220]

[ 82 123 78]
[ 83 125 78]
[ 88 131 80]],
[[

]],

]

分离RGB值

def writeFile(X,filename):
    if filename!="":
        with open(filename,"w")as f:
            json.dump(X,f,indent=4)
def getMatrixRGB(f,mode="r",filename=""):
    X = []
    for i,v1 in enumerate(f):
        x1 = []
        for j,v2 in enumerate(v1):
            x2= []

            if mode == "r":
                x2.append(int(v2[2]))
            elif mode == "g":
                x2.append(int(v2[1]))
            elif mode == "b":
                x2.append(int(v2[0]))
            else:
                pass
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename)
    return X

[
    [
        [220],
        [ ....]
                ],
       ........
                ]

##合并RGB值,复原图像

def comp_Matrix_RGB(r,g,b):
    X = []
    for i,v1 in enumerate(r):
        x1 = []
        for j,v2 in enumerate(v1):
            x2 = [b[i][j][0],g[i][j][0],r[i][j][0]]
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename="comp.txt")
    return(X)

完整代码

import cv2
import numpy as np
import json
import pickle

def train(X,y,filename=""):
    reg = LinearRegression()
    reg.fit(X,y)
    #print(reg.coef_)
    #print(reg.intercept_)
    print(reg.score(X,y))
    pickle.dump(reg,open("filename","wb"))

 
def writeFile(X,filename):
    if filename!="":
        with open(filename,"w")as f:
            json.dump(X,f,indent=4)

def getMatrixRGB(f,mode="r",filename=""):
    X = []
    for i,v1 in enumerate(f):
        x1 = []
        for j,v2 in enumerate(v1):
            x2= []

            if mode == "r":
                x2.append(int(v2[2]))
            elif mode == "g":
                x2.append(int(v2[1]))
            elif mode == "b":
                x2.append(int(v2[0]))
            else:
                pass
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename)
    return X

def comp_Matrix_RGB(r,g,b):
    X = []
    for i,v1 in enumerate(r):
        x1 = []
        for j,v2 in enumerate(v1):
            x2 = [b[i][j][0],g[i][j][0],r[i][j][0]]
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename="comp.txt")
    return(X)


def change_Matrix_RGB(r,g,b,p=0.8):
    X = []
    for i,v1 in enumerate(r):
        x1 = []
        for j,v2 in enumerate(v1):
            x2 = [b[i][j][0]*p,g[i][j][0]*p,r[i][j][0]*p]
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename="comp.txt")
    return(X)

#154,133,3
def main(file1):
    """
    [[[245 227 220]
      [245 226 219]
      [245 227 220]
      ...
      [ 82 123  78]
      [ 83 125  78]
      [ 88 131  80]]

    """

    f1 = cv2.imread(file1)
    X_r = getMatrixRGB(f1,mode="r",filename="X_r.txt")
    X_g = getMatrixRGB(f1,mode="g",filename="X_g.txt")
    X_b = getMatrixRGB(f1,mode="b",filename="X_b.txt")

    img_mat = comp_Matrix_RGB(X_r,X_g,X_b)
    img_mat_ = change_Matrix_RGB(X_r,X_g,X_b)
    img = np.array(img_mat)
    img_ = np.array(img_mat_)
    #print ((f1 == img).all())
    cv2.imwrite("comp.png",img)
    cv2.imwrite("comp_.png",img_)
    
if __name__=="__main__":
    p1="22.png"
    main(p1)

X_r ,X_g, X_b

在这里插入图片描述

comp.png

请添加图片描述

对图像进行变换处理

rgb*0.8
def change_Matrix_RGB(r,g,b,p=0.8):
    X = []
    for i,v1 in enumerate(r):
        x1 = []
        for j,v2 in enumerate(v1):
            x2 = [b[i][j][0]*p,g[i][j][0]*p,r[i][j][0]*p]
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename="comp.txt")
    return(X)

在这里插入图片描述

rgb;b&g = 0
def change_Matrix_RGB(r,g,b):
    X = []
    for i,v1 in enumerate(r):
        x1 = []
        for j,v2 in enumerate(v1):
            x2 = [0,0,r[i][j][0]]  # b,g,r顺序
            x1.append(x2)
        X.append(x1)
    writeFile(X,filename="comp.txt")
    return(X)

在这里插入图片描述

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐