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 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
常见python正则用法的简单实例
Jun 21 Python
python类中super()和__init__()的区别
Oct 18 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
Python识别html主要文本框过程解析
Feb 18 Python
Python中if有多个条件处理方法
Feb 26 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
python 三种方法实现对Excel表格的读写
Nov 19 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python使用openpyxl批量处理数据
Jun 23 Python
python井字棋游戏实现人机对战
Apr 28 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
DOTA2 探索永无止境 玩家自创强悍插眼攻略
2020/04/20 DOTA
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
2019/07/24 PHP
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
js绑定事件this指向发生改变的问题解决方法
2013/04/23 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
python进阶教程之动态类型详解
2014/08/30 Python
python动态参数用法实例分析
2015/05/25 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
详解Python中for循环是如何工作的
2017/06/30 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
python3中类的继承以及self和super的区别详解
2019/06/26 Python
python生成器推导式用法简单示例
2019/10/08 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
python爬虫基础知识点整理
2020/06/02 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
优秀乡村医生事迹材料
2014/05/28 职场文书
视光学专业自荐信
2014/06/24 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
党员转正大会主持词
2015/07/02 职场文书
护士心得体会范文
2016/01/25 职场文书