python——图像处理4(生成纹理)

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);                       #分离出图片的BRG颜色通道

zeros = np.zeros(image.shape[:2],dtype="uint8");#创建与image相同大小的零矩阵
cv2.imshow("BLUE",cv2.merge([B,zeros,zeros]));#显示 (B00)图像
cv2.imshow("GREEN",cv2.merge([zeros,G,zeros]));#显示(0G0)图像
cv2.imshow("RED",cv2.merge([zeros,zeros,R]));#显示(00R)图像
img2 = cv2.merge([B, G, R])
cv2.imshow("examplesR", img2)
cv2.waitKey(0);

猜你喜欢

转载自blog.csdn.net/gm_Ergou/article/details/92846631
今日推荐