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自然语言编码转换模块codecs介绍
Apr 08 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
对Python中type打开文件的方式介绍
Apr 28 Python
详解pyenv下使用python matplotlib模块的问题解决
Nov 29 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
python基于pdfminer库提取pdf文字代码实例
Aug 15 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
django实现模板中的字符串文字和自动转义
Mar 31 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进程通信基础之信号
2017/02/19 PHP
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
javascript中substr,substring,slice.splice的区别说明
2010/11/25 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
小程序转发探索示例
2019/02/19 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
2020/07/15 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
wxPython学习之主框架实例
2014/09/28 Python
Python3实现从指定路径查找文件的方法
2015/05/22 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
中间件分为哪几类
2012/03/14 面试题
Java语言程序设计测试题判断题部分
2013/01/06 面试题
班级年度安全计划书
2014/05/01 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
2014年纪检工作总结
2014/11/12 职场文书
工程部岗位职责范本
2015/04/11 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
高三生物教学反思
2016/02/22 职场文书