python图片颜色迁移_Python OpenCV 实现Reinhard颜色迁移算法

# -*- coding: utf-8 -*-

import cv2

import numpy as np

image = cv2.imread('des.jpg')

image = cv2.cvtColor(image,cv2.COLOR_BGR2LAB)

original = cv2.imread('src.jpg')

original = cv2.cvtColor(original,cv2.COLOR_BGR2LAB)

def getavgstd(image):    //得到均值和标准差

avg = []

std = []

image_avg_l = np.mean(image[:,:,0])

image_std_l = np.std(image[:,:,0])

image_avg_a = np.mean(image[:,:,1])

image_std_a = np.std(image[:,:,1])

image_avg_b = np.mean(image[:,:,2])

image_std_b = np.std(image[:,:,2])

avg.append(image_avg_l)

avg.append(image_avg_a)

avg.append(image_avg_b)

std.append(image_std_l)

std.append(image_std_a)

std.append(image_std_b)

return (avg,std)

image_avg,image_std = getavgstd(image)

original_avg,original_std = getavgstd(original)

height,width,channel = image.shape

for i in range(0,height):

for j in range(0,width):

for k in range(0,channel):

t = image[i,j,k]

t = (t-image_avg[k])*(original_std[k]/image_std[k]) + original_avg[k]

t = 0 if t<0 else t

t = 255 if t>255 else t

image[i,j,k] = t

image = cv2.cvtColor(image,cv2.COLOR_LAB2BGR)

cv2.imwrite('out.jpg',image)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值