python实现两张图片的像素融合


Posted in Python onFebruary 23, 2019

本文实例为大家分享了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 相关文章推荐
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python File readlines() 使用方法
Mar 19 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
python实现汉诺塔算法
Mar 01 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
python对文件的操作方法汇总
Feb 28 Python
python如何将两张图片生成为全景图片
Mar 05 Python
利用python爬取有道词典的方法
Dec 08 Python
python之基数排序的实现
Jul 26 Python
Python判断有效的数独算法示例
Feb 23 #Python
Python实现的旋转数组功能算法示例
Feb 23 #Python
Python实现求两个数组交集的方法示例
Feb 23 #Python
Python神奇的内置函数locals的实例讲解
Feb 22 #Python
Python玩转Excel的读写改实例
Feb 22 #Python
Python操作配置文件ini的三种方法讲解
Feb 22 #Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 #Python
You might like
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
Javascript----文件操作
2007/01/18 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
浅谈React 属性和状态的一些总结
2016/11/21 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
《Python学习手册》学习总结
2018/01/17 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
python实现人机猜拳小游戏
2020/02/03 Python
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
体育教育毕业生自荐信
2013/11/21 职场文书
优秀学生事迹材料
2014/02/08 职场文书
酒店大堂副理的职责范文
2014/02/13 职场文书
人力资源作业细则
2014/03/03 职场文书
党员批评与自我批评发言稿
2014/10/14 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书