1.根据rgb波动生成纹理(把一张图片的纹理,在另一张上面生成出来)
import cv2 as cv
import numpy as np
import cv2
def get_avg(list5):
if len(list5)==0:
avg=0;
else:
avg = sum(list5)/ len(list5)
return avg
def light(img1,img2):
x = img1.shape[0]
y = img1.shape[1]
for i in range(x-1):
for j in range(y-1):
b = int(img1[i, j + 1][0]) - int(img1[i, j][0])
g = int(img1[i, j + 1][1]) - int(img1[i, j][1])
r = int(img1[i, j + 1][2]) - int(img1[i, j][2])
print(b,g,r)
img2[i, j + 1][0] = img2[i, j][0] + b
img2[i, j + 1][1] = img2[i, j][1] + g
img2[i, j + 1][2] = img2[i, j][2] + r
cv2.imwrite('img/26.jpg',img2)
img1= cv2.imread('img/23.jpg')
img2= cv2.imread('img/25.jpg')
light(img1,img2)
2.rgb通道拆分与合并
import numpy as np;
import cv2; #导入opencv模块
image=cv2.imread("img/a3.jpg");#读取要处理的图片
B,G,R = cv2.split(image); #分离出图片的B,R,G颜色通道
zeros = np.zeros(image.shape[:2],dtype="uint8");#创建与image相同大小的零矩阵
cv2.imshow("BLUE",cv2.merge([B,zeros,zeros]));#显示 (B,0,0)图像
cv2.imshow("GREEN",cv2.merge([zeros,G,zeros]));#显示(0,G,0)图像
cv2.imshow("RED",cv2.merge([zeros,zeros,R]));#显示(0,0,R)图像
img2 = cv2.merge([B, G, R])
cv2.imshow("examplesR", img2)
cv2.waitKey(0);