图片组成
[
[[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)