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计算圆周率pi的方法
Jul 11 Python
python 拼接文件路径的方法
Oct 23 Python
python多进程使用及线程池的使用方法代码详解
Oct 24 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
Dec 26 Python
Python对象与引用的介绍
Jan 24 Python
Python参数类型以及常见的坑详解
Jul 08 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
基于python操作ES实例详解
Nov 16 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
python实现PCA降维的示例详解
Feb 24 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 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
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
php异常处理捕获错误整理
2019/09/23 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
JS中捕获console.log()输出的方法
2015/04/16 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
javascript事件委托的方式绑定详解
2015/06/10 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
JavaScript模块模式实例详解
2017/10/25 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
npm qs模块使用详解
2020/02/07 Javascript
浅谈python数据类型及类型转换
2017/12/18 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
python GUI计算器的实现
2020/10/09 Python
县人大领导班子四风对照检查材料思想汇报
2014/10/09 职场文书
高中同学会致辞
2015/08/01 职场文书
村主任当选感言
2015/08/01 职场文书
小学思品教学反思
2016/02/20 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python