python两张图片融合_python实现两张图片的像素融合
本文实例为大家分享了python实现两张图片像素融合的具体代码,供大家参考,具体内容如下
通过计算两张图片的颜色直方图特征,利用直方图对图片的颜色进行融合。
import numpy as np
import cv2
from PIL import Image,ExifTags
def calcMeanAndVariance(img):
row=img.shape[0]
col=img.shape[1]
#channel=img.shape[2]
total=row*col
print (row,col,total)
mean=np.zeros((3))
variance=np.zeros((3))
sum=np.zeros((3))
for i in range(row):
for j in range(col):
sum[0]+=img[i][j][0]
sum[1]+=img[i][j][1]
sum[2]+=img[i][j][2]
mean[0]=sum[0]/total
mean[1]=sum[1]/total
mean[2]=sum[2]/total
sum=np.zeros((3))
for i in range(row):
for j in range(col):
sum[0]=np.square(img[i][j][0]-mean[0])
sum[1]=np.square(img[i][j][1]-mean[1])
sum[2]=np.square(img[i][j][2]-mean[2])
variance[0]=np.sqrt(sum[0]/total)
variance[1]=np.sqrt(sum[1]/total)
variance[2]=np.sqrt(sum[2]/total)
print (mean,variance)
return mean,variance
def cololTransit(img1,img2):
image1 = cv2.cvtColor(img1, cv2.COLOR_BGR2LAB)
image2=cv2.cvtColor(img2, cv2.COLOR_BGR2LAB)
mean1,variance1=calcMeanAndVariance(image1)
mean2,variance2=calcMeanAndVariance(image2)
#print (mean1,variance1)
radio=np.zeros((3))
radio[0]=variance2[0]/variance1[0]
radio[1]=variance2[1]/variance1[1]
radio[2]=variance2[2]/variance1[2]
print('test', radio)
row=image1.shape[0]
col=image1.shape[1]
for i in range(row):
for j in range(col):
image1[i][j][0]=min(255,max(0,radio[0]*(image1[i][j][0]-mean1[0])+mean2[0]))
image1[i][j][1]=min(255,max(0,radio[1]*(image1[i][j][1]-mean1[1])+mean2[1]))
image1[i][j][2]=min(255,max(0,radio[2]*(image1[i][j][2]-mean1[2])+mean2[2]))
image = cv2.cvtColor(image1, cv2.COLOR_BGR2LAB)
return image
if __name__=='__main__':
img1=cv2.imread('1.jpg')
img2=cv2.imread('2.jpg')
cv2.namedWindow('src')
cv2.namedWindow('dst')
#cv2.resizeWindow('src',500,500)
#cv2.resizeWindow('dst',500,500)
cv2.imshow('src',img1)
cv2.imshow('dst',img2)
cv2.waitKey()
cv2.destroyAllWindows()
img=cololTransit(img1,img2)
cv2.namedWindow('result')
cv2.imshow('result',img)
cv2.waitKey()
cv2.destroyAllWindows()
#print (img)
python两张图片融合_python实现两张图片的像素融合相关推荐
- python求交点坐标_Python求两个圆的交点坐标或三个圆的交点坐标方法
计算两个圆的交点 代码如下: # -*- coding: utf-8 -*- import math import numpy as np def insec(p1,r1,p2,r2): x = p1 ...
- python图例重复显示_python – 具有两个标记的多行的自定义图例,用于相同的文本...
我想执行图中所示的图例类型. 这个数字我做了一些技巧只是为了表示我真正想要的东西,所以它没有很好地展示传奇中粉红色标记的颜色. 在图中,圆圈表示相同的参数,但是对于两个不同的模型;三角形和方形标记也是 ...
- python怎么计算百分比_python计算两个数的百分比方法
工作中遇到了要计算两个数百分比的问题,python 2.7 环境. 代码: #!/usr/bin/env python #function: 计算百分比 #USAGE: python calculat ...
- python求两数最大公因数_Python求两个数的最大公约数
Python求两个数的最大公约数 一.求最大公约数算法: 1. 整数A对整数B进行取整, 余数用整数C来表示 举例: C = A % B 2. 如果C等于0,则C就是整数A和整数B的最大公约数 3. ...
- python通过outlook发送邮件_python使用两种发邮件的方式smtp和outlook示例
本篇文章主要介绍了python使用两种发邮件的方式smtp和outlook示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. smtp是直接调用163邮箱的smtp服务器,需要在163邮箱中设置 ...
- python判断英文字母_Python判断两个单词的相似度
本文要点在于算法的设计:如果两个单词中不相同的字母足够少,并且随机选择几个字母在两个单词中具有相同的前后顺序,则认为两个单词是等价的. 目前存在的问题:可能会有误判. from random impo ...
- python 数组比较大小_python – 比较两个不同长度的numpy数组
这可能是一个特殊情况,但你应该能够使用numpy digitize.这里需要注意的是,垃圾箱必须单调减少或增加. >>> import numpy >>> a = ...
- python分两列输出_python分两列输出
分割成一个包含两个元素列表的列 对于一个已知分隔符的简单分割(例如,用破折号分割或用空格分割).str.split() 方法就足够了 . 它在字符串的列(系列)上运行,并返回列表(系列). >& ...
- python字符串比较大小_Python 比较两个字符串大小
<1---关于解决MySQL在控制台插入中文乱码问题> 说明:以下所有操作都是基于我个人的电脑及示例,读者可以参考我这个解决过程,去解决自己的问题,如有其它疑问,欢迎留言交流. 首先来看看 ...
最新文章
- Sublime Text3常用插件以及安装方法(实用)
- ubutu14.04无法使用sudo,也无法切换到root用户去解决问题怎么办?
- jbutton可以设置id吗_Java JButton.setHorizontalTextPosition方法代碼示例
- matlab利用作图法求圆周率
- openssh升级sftp_Centos7 升级 openSSH 到7.9p1的详细步骤
- java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present解决方案
- androidh5混合开发_Android H5混合开发(3):原生Android项目里嵌入Cordova
- 微软中国回应关闭实体直营店:中国市场保持正常营运
- The following types may not be used as proxies 异常处理办法
- 终极算法-机器学习和人工智能如何重塑世界:电子书
- 不限速度盘下载神器Pandownload作者被抓,大量下载脚本已宣布停更
- SQL2019 用户sa‘登录失败(错误18456)
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Incorrect database name ‘dongdong_1
- ATOM Z3000 家族整理之基本信息(一) V2.0版
- eChat(微聊天)
- python自动群发邮件_24.python之自动群发邮件(1)
- 白月黑羽selenium自动化测试课后习题
- WMS系统对接OMS接口经验
- Android语音转文字一识别语音
- 2022-3-22 Leetcode 72.编辑距离
热门文章
- 滴滴“负重”387天
- 扑克牌大小的充电宝,你有吗?
- 44 年前的今天,改变世界的 TA 诞生了!
- 经过 180 年的训练,OpenAI 在 DOTA 2 上完虐人类!
- 水滴直播风波背后:事关隐私的恐慌和“委屈”的周鸿祎
- javaweb实训第四天上午——员工管理系统-JavaBeanELJSTLMVC思想
- python 反传播_纯Python实现反向传播(BP算法)(5)
- aptitude安装出现依赖_开发函数计算的正确姿势——依赖安装方法一览
- android activity传值到dialog,android 自定义AlertDialog 与Activity相互传递数据
- bash 脚本_实用的 bash 自定义脚本,快速提效工作流程