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中urllib2模块的8个使用细节分享
Jan 01 Python
浅谈python类属性的访问、设置和删除方法
Jul 25 Python
python机器学习实战之K均值聚类
Dec 20 Python
python爬虫爬取某站上海租房图片
Feb 04 Python
利用python如何处理nc数据详解
May 23 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
PyTorch的自适应池化Adaptive Pooling实例
Jan 03 Python
详解python中groupby函数通俗易懂
May 14 Python
keras导入weights方式
Jun 12 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
python 递归相关知识总结
Mar 03 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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
Zend 输出产生XML解析错误
2009/03/03 PHP
php 404错误页面实现代码
2009/06/22 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
调试Javascript代码(浏览器F12及VS中debugger关键字)
2013/01/25 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
python中的计时器timeit的使用方法
2017/10/20 Python
mac系统安装Python3初体验
2018/01/02 Python
Python 12306抢火车票脚本
2018/02/07 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
学员自我鉴定
2014/03/19 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
兵马俑的导游词
2015/02/02 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python