栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 对图片RGB进行分离与重组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 对图片RGB进行分离与重组

图片组成

[
[[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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286841.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号